Article SUBSTLAT, MML version 4.99.1005
:: SUBSTLAT:funcnot 1 => SUBSTLAT:func 1
definition
let a1, a2 be set;
func SubstitutionSet(A1,A2) -> Element of bool Fin PFuncs(a1,a2) equals
{b1 where b1 is Element of Fin PFuncs(a1,a2): (for b2 being set
st b2 in b1
holds b2 is finite) &
(for b2, b3 being Element of PFuncs(a1,a2)
st b2 in b1 & b3 in b1 & b2 c= b3
holds b2 = b3)};
end;
:: SUBSTLAT:def 1
theorem
for b1, b2 being set holds
SubstitutionSet(b1,b2) = {b3 where b3 is Element of Fin PFuncs(b1,b2): (for b4 being set
st b4 in b3
holds b4 is finite) &
(for b4, b5 being Element of PFuncs(b1,b2)
st b4 in b3 & b5 in b3 & b4 c= b5
holds b4 = b5)};
:: SUBSTLAT:th 1
theorem
for b1, b2 being set holds
{} in SubstitutionSet(b1,b2);
:: SUBSTLAT:th 2
theorem
for b1, b2 being set holds
{{}} in SubstitutionSet(b1,b2);
:: SUBSTLAT:funcreg 1
registration
let a1, a2 be set;
cluster SubstitutionSet(a1,a2) -> non empty;
end;
:: SUBSTLAT:funcnot 2 => SUBSTLAT:func 2
definition
let a1, a2 be set;
let a3, a4 be Element of SubstitutionSet(a1,a2);
redefine func a3 \/ a4 -> Element of Fin PFuncs(a1,a2);
commutativity;
:: for a1, a2 being set
:: for a3, a4 being Element of SubstitutionSet(a1,a2) holds
:: a3 \/ a4 = a4 \/ a3;
idempotence;
:: for a1, a2 being set
:: for a3 being Element of SubstitutionSet(a1,a2) holds
:: a3 \/ a3 = a3;
end;
:: SUBSTLAT:exreg 1
registration
let a1, a2 be set;
cluster non empty Element of SubstitutionSet(a1,a2);
end;
:: SUBSTLAT:condreg 1
registration
let a1, a2 be set;
cluster -> finite (Element of SubstitutionSet(a1,a2));
end;
:: SUBSTLAT:funcnot 3 => SUBSTLAT:func 3
definition
let a1, a2 be set;
let a3 be Element of Fin PFuncs(a1,a2);
func mi A3 -> Element of SubstitutionSet(a1,a2) equals
{b1 where b1 is Element of PFuncs(a1,a2): b1 is finite &
(for b2 being Element of PFuncs(a1,a2) holds
b2 in a3 & b2 c= b1
iff
b2 = b1)};
end;
:: SUBSTLAT:def 2
theorem
for b1, b2 being set
for b3 being Element of Fin PFuncs(b1,b2) holds
mi b3 = {b4 where b4 is Element of PFuncs(b1,b2): b4 is finite &
(for b5 being Element of PFuncs(b1,b2) holds
b5 in b3 & b5 c= b4
iff
b5 = b4)};
:: SUBSTLAT:condreg 2
registration
let a1, a2 be set;
cluster -> functional (Element of SubstitutionSet(a1,a2));
end;
:: SUBSTLAT:funcnot 4 => SUBSTLAT:func 4
definition
let a1, a2 be set;
let a3, a4 be Element of Fin PFuncs(a1,a2);
func A3 ^ A4 -> Element of Fin PFuncs(a1,a2) equals
{b1 \/ b2 where b1 is Element of PFuncs(a1,a2), b2 is Element of PFuncs(a1,a2): b1 in a3 & b2 in a4 & b1 tolerates b2};
end;
:: SUBSTLAT:def 3
theorem
for b1, b2 being set
for b3, b4 being Element of Fin PFuncs(b1,b2) holds
b3 ^ b4 = {b5 \/ b6 where b5 is Element of PFuncs(b1,b2), b6 is Element of PFuncs(b1,b2): b5 in b3 & b6 in b4 & b5 tolerates b6};
:: SUBSTLAT:th 3
theorem
for b1, b2 being set
for b3, b4 being Element of Fin PFuncs(b1,b2) holds
b3 ^ b4 = b4 ^ b3;
:: SUBSTLAT:th 4
theorem
for b1, b2 being set
for b3, b4 being Element of Fin PFuncs(b1,b2)
st b3 = {{}}
holds b4 ^ b3 = b4;
:: SUBSTLAT:th 5
theorem
for b1, b2 being set
for b3 being Element of Fin PFuncs(b1,b2)
for b4, b5 being set
st b3 in SubstitutionSet(b1,b2) & b4 in b3 & b5 in b3 & b4 c= b5
holds b4 = b5;
:: SUBSTLAT:th 6
theorem
for b1, b2 being set
for b3 being Element of Fin PFuncs(b1,b2)
for b4 being set
st b4 in mi b3
holds b4 in b3 &
(for b5 being set
st b5 in b3 & b5 c= b4
holds b5 = b4);
:: SUBSTLAT:exreg 2
registration
let a1, a2 be set;
cluster Relation-like Function-like finite Element of PFuncs(a1,a2);
end;
:: SUBSTLAT:th 7
theorem
for b1, b2 being set
for b3 being Element of Fin PFuncs(b1,b2)
for b4 being finite set
st b4 in b3 &
(for b5 being finite set
st b5 in b3 & b5 c= b4
holds b5 = b4)
holds b4 in mi b3;
:: SUBSTLAT:th 8
theorem
for b1, b2 being set
for b3 being Element of Fin PFuncs(b1,b2) holds
mi b3 c= b3;
:: SUBSTLAT:th 9
theorem
for b1, b2 being set
for b3 being Element of Fin PFuncs(b1,b2)
st b3 = {}
holds mi b3 = {};
:: SUBSTLAT:th 10
theorem
for b1, b2 being set
for b3 being Element of Fin PFuncs(b1,b2)
for b4 being finite set
st b4 in b3
holds ex b5 being set st
b5 c= b4 & b5 in mi b3;
:: SUBSTLAT:th 11
theorem
for b1, b2 being set
for b3 being Element of SubstitutionSet(b1,b2) holds
mi b3 = b3;
:: SUBSTLAT:th 12
theorem
for b1, b2 being set
for b3, b4 being Element of Fin PFuncs(b1,b2) holds
mi (b3 \/ b4) c= (mi b3) \/ b4;
:: SUBSTLAT:th 13
theorem
for b1, b2 being set
for b3, b4 being Element of Fin PFuncs(b1,b2) holds
mi ((mi b3) \/ b4) = mi (b3 \/ b4);
:: SUBSTLAT:th 14
theorem
for b1, b2 being set
for b3, b4, b5 being Element of Fin PFuncs(b1,b2)
st b3 c= b4
holds b3 ^ b5 c= b4 ^ b5;
:: SUBSTLAT:th 15
theorem
for b1, b2 being set
for b3, b4 being Element of Fin PFuncs(b1,b2)
for b5 being set
st b5 in b3 ^ b4
holds ex b6, b7 being set st
b6 in b3 & b7 in b4 & b5 = b6 \/ b7;
:: SUBSTLAT:th 16
theorem
for b1, b2 being set
for b3, b4 being Element of Fin PFuncs(b1,b2)
for b5, b6 being Element of PFuncs(b1,b2)
st b5 in b3 & b6 in b4 & b5 tolerates b6
holds b5 \/ b6 in b3 ^ b4;
:: SUBSTLAT:th 17
theorem
for b1, b2 being set
for b3, b4 being Element of Fin PFuncs(b1,b2) holds
mi (b3 ^ b4) c= (mi b3) ^ b4;
:: SUBSTLAT:th 18
theorem
for b1, b2 being set
for b3, b4, b5 being Element of Fin PFuncs(b1,b2)
st b3 c= b4
holds b5 ^ b3 c= b5 ^ b4;
:: SUBSTLAT:th 19
theorem
for b1, b2 being set
for b3, b4 being Element of Fin PFuncs(b1,b2) holds
mi ((mi b3) ^ b4) = mi (b3 ^ b4);
:: SUBSTLAT:th 20
theorem
for b1, b2 being set
for b3, b4 being Element of Fin PFuncs(b1,b2) holds
mi (b3 ^ mi b4) = mi (b3 ^ b4);
:: SUBSTLAT:th 21
theorem
for b1, b2 being set
for b3, b4, b5 being Element of Fin PFuncs(b1,b2) holds
b3 ^ (b4 ^ b5) = (b3 ^ b4) ^ b5;
:: SUBSTLAT:th 22
theorem
for b1, b2 being set
for b3, b4, b5 being Element of Fin PFuncs(b1,b2) holds
b3 ^ (b4 \/ b5) = (b3 ^ b4) \/ (b3 ^ b5);
:: SUBSTLAT:th 23
theorem
for b1, b2 being set
for b3 being Element of Fin PFuncs(b1,b2) holds
b3 c= b3 ^ b3;
:: SUBSTLAT:th 24
theorem
for b1, b2 being set
for b3 being Element of Fin PFuncs(b1,b2) holds
mi (b3 ^ b3) = mi b3;
:: SUBSTLAT:th 25
theorem
for b1, b2 being set
for b3 being Element of SubstitutionSet(b1,b2) holds
mi (b3 ^ b3) = b3;
:: SUBSTLAT:funcnot 5 => SUBSTLAT:func 5
definition
let a1, a2 be set;
func SubstLatt(A1,A2) -> strict LattStr means
the carrier of it = SubstitutionSet(a1,a2) &
(for b1, b2 being Element of SubstitutionSet(a1,a2) holds
(the L_join of it) .(b1,b2) = mi (b1 \/ b2) &
(the L_meet of it) .(b1,b2) = mi (b1 ^ b2));
end;
:: SUBSTLAT:def 4
theorem
for b1, b2 being set
for b3 being strict LattStr holds
b3 = SubstLatt(b1,b2)
iff
the carrier of b3 = SubstitutionSet(b1,b2) &
(for b4, b5 being Element of SubstitutionSet(b1,b2) holds
(the L_join of b3) .(b4,b5) = mi (b4 \/ b5) &
(the L_meet of b3) .(b4,b5) = mi (b4 ^ b5));
:: SUBSTLAT:funcreg 2
registration
let a1, a2 be set;
cluster SubstLatt(a1,a2) -> non empty strict;
end;
:: SUBSTLAT:funcreg 3
registration
let a1, a2 be set;
cluster SubstLatt(a1,a2) -> strict Lattice-like;
end;
:: SUBSTLAT:funcreg 4
registration
let a1, a2 be set;
cluster SubstLatt(a1,a2) -> strict distributive bounded;
end;
:: SUBSTLAT:th 26
theorem
for b1, b2 being set holds
Bottom SubstLatt(b1,b2) = {};
:: SUBSTLAT:th 27
theorem
for b1, b2 being set holds
Top SubstLatt(b1,b2) = {{}};