Article ALGSTR_3, MML version 4.99.1005
:: ALGSTR_3:structnot 1 => ALGSTR_3:struct 1
definition
struct(ZeroOneStr) TernaryFieldStr(#
carrier -> set,
ZeroF -> Element of the carrier of it,
OneF -> Element of the carrier of it,
TernOp -> Function-like quasi_total Relation of [:the carrier of it,the carrier of it,the carrier of it:],the carrier of it
#);
end;
:: ALGSTR_3:attrnot 1 => ALGSTR_3:attr 1
definition
let a1 be TernaryFieldStr;
attr a1 is strict;
end;
:: ALGSTR_3:exreg 1
registration
cluster strict TernaryFieldStr;
end;
:: ALGSTR_3:aggrnot 1 => ALGSTR_3:aggr 1
definition
let a1 be set;
let a2, a3 be Element of a1;
let a4 be Function-like quasi_total Relation of [:a1,a1,a1:],a1;
aggr TernaryFieldStr(#a1,a2,a3,a4#) -> strict TernaryFieldStr;
end;
:: ALGSTR_3:selnot 1 => ALGSTR_3:sel 1
definition
let a1 be TernaryFieldStr;
sel the TernOp of a1 -> Function-like quasi_total Relation of [:the carrier of a1,the carrier of a1,the carrier of a1:],the carrier of a1;
end;
:: ALGSTR_3:exreg 2
registration
cluster non empty TernaryFieldStr;
end;
:: ALGSTR_3:modenot 1
definition
let a1 be non empty TernaryFieldStr;
mode Scalar of a1 is Element of the carrier of a1;
end;
:: ALGSTR_3:funcnot 1 => ALGSTR_3:func 1
definition
let a1 be non empty TernaryFieldStr;
let a2, a3, a4 be Element of the carrier of a1;
func Tern(A2,A3,A4) -> Element of the carrier of a1 equals
(the TernOp of a1) .(a2,a3,a4);
end;
:: ALGSTR_3:def 1
theorem
for b1 being non empty TernaryFieldStr
for b2, b3, b4 being Element of the carrier of b1 holds
Tern(b2,b3,b4) = (the TernOp of b1) .(b2,b3,b4);
:: ALGSTR_3:funcnot 2 => ALGSTR_3:func 2
definition
func ternaryreal -> Function-like quasi_total Relation of [:REAL,REAL,REAL:],REAL means
for b1, b2, b3 being Element of REAL holds
it .(b1,b2,b3) = (b1 * b2) + b3;
end;
:: ALGSTR_3:def 4
theorem
for b1 being Function-like quasi_total Relation of [:REAL,REAL,REAL:],REAL holds
b1 = ternaryreal
iff
for b2, b3, b4 being Element of REAL holds
b1 .(b2,b3,b4) = (b2 * b3) + b4;
:: ALGSTR_3:funcnot 3 => ALGSTR_3:func 3
definition
func TernaryFieldEx -> strict TernaryFieldStr equals
TernaryFieldStr(#REAL,0,1,ternaryreal#);
end;
:: ALGSTR_3:def 5
theorem
TernaryFieldEx = TernaryFieldStr(#REAL,0,1,ternaryreal#);
:: ALGSTR_3:funcreg 1
registration
cluster TernaryFieldEx -> non empty strict;
end;
:: ALGSTR_3:funcnot 4 => ALGSTR_3:func 4
definition
let a1, a2, a3 be Element of the carrier of TernaryFieldEx;
func tern(A1,A2,A3) -> Element of the carrier of TernaryFieldEx equals
(the TernOp of TernaryFieldEx) .(a1,a2,a3);
end;
:: ALGSTR_3:def 6
theorem
for b1, b2, b3 being Element of the carrier of TernaryFieldEx holds
tern(b1,b2,b3) = (the TernOp of TernaryFieldEx) .(b1,b2,b3);
:: ALGSTR_3:th 3
theorem
for b1, b2, b3, b4 being Element of REAL
st b1 <> b2
holds ex b5 being Element of REAL st
(b1 * b5) + b3 = (b2 * b5) + b4;
:: ALGSTR_3:th 5
theorem
for b1, b2, b3 being Element of the carrier of TernaryFieldEx
for b4, b5, b6 being Element of REAL
st b1 = b4 & b2 = b5 & b3 = b6
holds Tern(b1,b2,b3) = (b4 * b5) + b6;
:: ALGSTR_3:th 7
theorem
1 = 1. TernaryFieldEx;
:: ALGSTR_3:attrnot 2 => ALGSTR_3:attr 2
definition
let a1 be non empty TernaryFieldStr;
attr a1 is Ternary-Field-like means
0. a1 <> 1. a1 &
(for b1 being Element of the carrier of a1 holds
Tern(b1,1. a1,0. a1) = b1) &
(for b1 being Element of the carrier of a1 holds
Tern(1. a1,b1,0. a1) = b1) &
(for b1, b2 being Element of the carrier of a1 holds
Tern(b1,0. a1,b2) = b2) &
(for b1, b2 being Element of the carrier of a1 holds
Tern(0. a1,b1,b2) = b2) &
(for b1, b2, b3 being Element of the carrier of a1 holds
ex b4 being Element of the carrier of a1 st
Tern(b1,b2,b4) = b3) &
(for b1, b2, b3, b4 being Element of the carrier of a1
st Tern(b1,b2,b3) = Tern(b1,b2,b4)
holds b3 = b4) &
(for b1, b2 being Element of the carrier of a1
st b1 <> b2
for b3, b4 being Element of the carrier of a1 holds
ex b5, b6 being Element of the carrier of a1 st
Tern(b5,b1,b6) = b3 & Tern(b5,b2,b6) = b4) &
(for b1, b2 being Element of the carrier of a1
st b1 <> b2
for b3, b4 being Element of the carrier of a1 holds
ex b5 being Element of the carrier of a1 st
Tern(b1,b5,b3) = Tern(b2,b5,b4)) &
(for b1, b2, b3, b4, b5, b6 being Element of the carrier of a1
st Tern(b3,b1,b5) = Tern(b4,b1,b6) & Tern(b3,b2,b5) = Tern(b4,b2,b6) & b1 <> b2
holds b3 = b4);
end;
:: ALGSTR_3:dfs 5
definiens
let a1 be non empty TernaryFieldStr;
To prove
a1 is Ternary-Field-like
it is sufficient to prove
thus 0. a1 <> 1. a1 &
(for b1 being Element of the carrier of a1 holds
Tern(b1,1. a1,0. a1) = b1) &
(for b1 being Element of the carrier of a1 holds
Tern(1. a1,b1,0. a1) = b1) &
(for b1, b2 being Element of the carrier of a1 holds
Tern(b1,0. a1,b2) = b2) &
(for b1, b2 being Element of the carrier of a1 holds
Tern(0. a1,b1,b2) = b2) &
(for b1, b2, b3 being Element of the carrier of a1 holds
ex b4 being Element of the carrier of a1 st
Tern(b1,b2,b4) = b3) &
(for b1, b2, b3, b4 being Element of the carrier of a1
st Tern(b1,b2,b3) = Tern(b1,b2,b4)
holds b3 = b4) &
(for b1, b2 being Element of the carrier of a1
st b1 <> b2
for b3, b4 being Element of the carrier of a1 holds
ex b5, b6 being Element of the carrier of a1 st
Tern(b5,b1,b6) = b3 & Tern(b5,b2,b6) = b4) &
(for b1, b2 being Element of the carrier of a1
st b1 <> b2
for b3, b4 being Element of the carrier of a1 holds
ex b5 being Element of the carrier of a1 st
Tern(b1,b5,b3) = Tern(b2,b5,b4)) &
(for b1, b2, b3, b4, b5, b6 being Element of the carrier of a1
st Tern(b3,b1,b5) = Tern(b4,b1,b6) & Tern(b3,b2,b5) = Tern(b4,b2,b6) & b1 <> b2
holds b3 = b4);
:: ALGSTR_3:def 7
theorem
for b1 being non empty TernaryFieldStr holds
b1 is Ternary-Field-like
iff
0. b1 <> 1. b1 &
(for b2 being Element of the carrier of b1 holds
Tern(b2,1. b1,0. b1) = b2) &
(for b2 being Element of the carrier of b1 holds
Tern(1. b1,b2,0. b1) = b2) &
(for b2, b3 being Element of the carrier of b1 holds
Tern(b2,0. b1,b3) = b3) &
(for b2, b3 being Element of the carrier of b1 holds
Tern(0. b1,b2,b3) = b3) &
(for b2, b3, b4 being Element of the carrier of b1 holds
ex b5 being Element of the carrier of b1 st
Tern(b2,b3,b5) = b4) &
(for b2, b3, b4, b5 being Element of the carrier of b1
st Tern(b2,b3,b4) = Tern(b2,b3,b5)
holds b4 = b5) &
(for b2, b3 being Element of the carrier of b1
st b2 <> b3
for b4, b5 being Element of the carrier of b1 holds
ex b6, b7 being Element of the carrier of b1 st
Tern(b6,b2,b7) = b4 & Tern(b6,b3,b7) = b5) &
(for b2, b3 being Element of the carrier of b1
st b2 <> b3
for b4, b5 being Element of the carrier of b1 holds
ex b6 being Element of the carrier of b1 st
Tern(b2,b6,b4) = Tern(b3,b6,b5)) &
(for b2, b3, b4, b5, b6, b7 being Element of the carrier of b1
st Tern(b4,b2,b6) = Tern(b5,b2,b7) & Tern(b4,b3,b6) = Tern(b5,b3,b7) & b2 <> b3
holds b4 = b5);
:: ALGSTR_3:exreg 3
registration
cluster non empty strict Ternary-Field-like TernaryFieldStr;
end;
:: ALGSTR_3:modenot 2
definition
mode Ternary-Field is non empty Ternary-Field-like TernaryFieldStr;
end;
:: ALGSTR_3:th 8
theorem
for b1 being non empty Ternary-Field-like TernaryFieldStr
for b2, b3, b4, b5, b6, b7 being Element of the carrier of b1
st b2 <> b3 & Tern(b4,b2,b5) = Tern(b6,b2,b7) & Tern(b4,b3,b5) = Tern(b6,b3,b7)
holds b4 = b6 & b5 = b7;
:: ALGSTR_3:th 11
theorem
for b1 being non empty Ternary-Field-like TernaryFieldStr
for b2 being Element of the carrier of b1
st b2 <> 0. b1
for b3, b4 being Element of the carrier of b1 holds
ex b5 being Element of the carrier of b1 st
Tern(b2,b5,b3) = b4;
:: ALGSTR_3:th 12
theorem
for b1 being non empty Ternary-Field-like TernaryFieldStr
for b2, b3, b4, b5 being Element of the carrier of b1
st b2 <> 0. b1 & Tern(b2,b3,b4) = Tern(b2,b5,b4)
holds b3 = b5;
:: ALGSTR_3:th 13
theorem
for b1 being non empty Ternary-Field-like TernaryFieldStr
for b2 being Element of the carrier of b1
st b2 <> 0. b1
for b3, b4 being Element of the carrier of b1 holds
ex b5 being Element of the carrier of b1 st
Tern(b5,b2,b3) = b4;
:: ALGSTR_3:th 14
theorem
for b1 being non empty Ternary-Field-like TernaryFieldStr
for b2, b3, b4, b5 being Element of the carrier of b1
st b2 <> 0. b1 & Tern(b3,b2,b4) = Tern(b5,b2,b4)
holds b3 = b5;