Article MSATERM, MML version 4.99.1005
:: MSATERM:funcreg 1
registration
let a1 be non empty set;
let a2 be non-empty ManySortedSet of a1;
let a3 be Element of a1;
cluster a2 . a3 -> non empty;
end;
:: MSATERM:funcnot 1 => MSATERM:func 1
definition
let a1 be non empty non void ManySortedSign;
let a2 be ManySortedSet of the carrier of a1;
func A1 -Terms A2 -> Element of bool FinTrees the carrier of DTConMSA a2 equals
TS DTConMSA a2;
end;
:: MSATERM:def 1
theorem
for b1 being non empty non void ManySortedSign
for b2 being ManySortedSet of the carrier of b1 holds
b1 -Terms b2 = TS DTConMSA b2;
:: MSATERM:funcreg 2
registration
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
cluster a1 -Terms a2 -> non empty;
end;
:: MSATERM:modenot 1
definition
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
mode Term of a1,a2 is Element of a1 -Terms a2;
end;
:: MSATERM:funcnot 2 => MSATERM:func 2
definition
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
let a3 be Element of the OperSymbols of a1;
redefine func Sym(a3,a2) -> Element of NonTerminals DTConMSA a2;
end;
:: MSATERM:modenot 2 => MSATERM:mode 1
definition
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
let a3 be Element of NonTerminals DTConMSA a2;
mode ArgumentSeq of A3 -> FinSequence of a1 -Terms a2 means
it is SubtreeSeq of a3;
end;
:: MSATERM:dfs 2
definiens
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
let a3 be Element of NonTerminals DTConMSA a2;
let a4 be FinSequence of a1 -Terms a2;
To prove
a4 is ArgumentSeq of a3
it is sufficient to prove
thus a4 is SubtreeSeq of a3;
:: MSATERM:def 2
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of NonTerminals DTConMSA b2
for b4 being FinSequence of b1 -Terms b2 holds
b4 is ArgumentSeq of b3
iff
b4 is SubtreeSeq of b3;
:: MSATERM:th 1
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of the OperSymbols of b1
for b4 being Relation-like Function-like FinSequence-like set holds
[b3,the carrier of b1] -tree b4 in b1 -Terms b2 &
b4 is DTree-yielding
iff
b4 is ArgumentSeq of Sym(b3,b2);
:: MSATERM:sch 1
scheme MSATERM:sch 1
{F1 -> non empty non void ManySortedSign,
F2 -> non-empty ManySortedSet of the carrier of F1()}:
for b1 being Element of F1() -Terms F2() holds
P1[b1]
provided
for b1 being Element of the carrier of F1()
for b2 being Element of F2() . b1 holds
P1[root-tree [b2,b1]]
and
for b1 being Element of the OperSymbols of F1()
for b2 being ArgumentSeq of Sym(b1,F2())
st for b3 being Element of F1() -Terms F2()
st b3 in proj2 b2
holds P1[b3]
holds P1[[b1,the carrier of F1()] -tree b2];
:: MSATERM:modenot 3
definition
let a1 be non empty non void ManySortedSign;
let a2 be MSAlgebra over a1;
let a3 be non-empty ManySortedSet of the carrier of a1;
mode c-Term of a2,a3 is Element of a1 -Terms ((the Sorts of a2) \/ a3);
end;
:: MSATERM:modenot 4
definition
let a1 be non empty non void ManySortedSign;
let a2 be MSAlgebra over a1;
let a3 be non-empty ManySortedSet of the carrier of a1;
let a4 be Element of the OperSymbols of a1;
mode ArgumentSeq of a4,a2,a3 is ArgumentSeq of Sym(a4,(the Sorts of a2) \/ a3);
end;
:: MSATERM:sch 2
scheme MSATERM:sch 2
{F1 -> non empty non void ManySortedSign,
F2 -> non-empty MSAlgebra over F1(),
F3 -> non-empty ManySortedSet of the carrier of F1()}:
for b1 being Element of F1() -Terms ((the Sorts of F2()) \/ F3()) holds
P1[b1]
provided
for b1 being Element of the carrier of F1()
for b2 being Element of (the Sorts of F2()) . b1 holds
P1[root-tree [b2,b1]]
and
for b1 being Element of the carrier of F1()
for b2 being Element of F3() . b1 holds
P1[root-tree [b2,b1]]
and
for b1 being Element of the OperSymbols of F1()
for b2 being ArgumentSeq of Sym(b1,(the Sorts of F2()) \/ F3())
st for b3 being Element of F1() -Terms ((the Sorts of F2()) \/ F3())
st b3 in proj2 b2
holds P1[b3]
holds P1[(Sym(b1,(the Sorts of F2()) \/ F3())) -tree b2];
:: MSATERM:funcnot 3 => MSATERM:func 3
definition
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
let a3 be Element of a1 -Terms a2;
let a4 be Element of proj1 a3;
redefine func a3 . a4 -> Element of the carrier of DTConMSA a2;
end;
:: MSATERM:condreg 1
registration
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
cluster -> finite (Element of a1 -Terms a2);
end;
:: MSATERM:th 2
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of b1 -Terms b2
st for b4 being Element of the carrier of b1
for b5 being Element of b2 . b4 holds
b3 . {} <> [b5,b4]
holds b3 . {} in [:the OperSymbols of b1,{the carrier of b1}:];
:: MSATERM:th 3
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being MSAlgebra over b1
for b4 being Element of b1 -Terms ((the Sorts of b3) \/ b2)
st (for b5 being Element of the carrier of b1
for b6 being set
st b6 in (the Sorts of b3) . b5
holds b4 . {} <> [b6,b5]) &
(for b5 being Element of the carrier of b1
for b6 being Element of b2 . b5 holds
b4 . {} <> [b6,b5])
holds b4 . {} in [:the OperSymbols of b1,{the carrier of b1}:];
:: MSATERM:th 4
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of the carrier of b1
for b4 being Element of b2 . b3 holds
root-tree [b4,b3] is Element of b1 -Terms b2;
:: MSATERM:th 5
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of b1 -Terms b2
for b4 being Element of the carrier of b1
for b5 being Element of b2 . b4
st b3 . {} = [b5,b4]
holds b3 = root-tree [b5,b4];
:: MSATERM:th 6
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being MSAlgebra over b1
for b4 being Element of the carrier of b1
for b5 being set
st b5 in (the Sorts of b3) . b4
holds root-tree [b5,b4] is Element of b1 -Terms ((the Sorts of b3) \/ b2);
:: MSATERM:th 7
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being MSAlgebra over b1
for b4 being Element of b1 -Terms ((the Sorts of b3) \/ b2)
for b5 being Element of the carrier of b1
for b6 being set
st b6 in (the Sorts of b3) . b5 & b4 . {} = [b6,b5]
holds b4 = root-tree [b6,b5];
:: MSATERM:th 8
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being MSAlgebra over b1
for b4 being Element of the carrier of b1
for b5 being Element of b2 . b4 holds
root-tree [b5,b4] is Element of b1 -Terms ((the Sorts of b3) \/ b2);
:: MSATERM:th 9
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being MSAlgebra over b1
for b4 being Element of b1 -Terms ((the Sorts of b3) \/ b2)
for b5 being Element of the carrier of b1
for b6 being Element of b2 . b5
st b4 . {} = [b6,b5]
holds b4 = root-tree [b6,b5];
:: MSATERM:th 10
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of b1 -Terms b2
for b4 being Element of the OperSymbols of b1
st b3 . {} = [b4,the carrier of b1]
holds ex b5 being ArgumentSeq of Sym(b4,b2) st
b3 = [b4,the carrier of b1] -tree b5;
:: MSATERM:funcnot 4 => MSATERM:func 4
definition
let a1 be non empty non void ManySortedSign;
let a2 be non-empty MSAlgebra over a1;
let a3 be non-empty ManySortedSet of the carrier of a1;
let a4 be Element of the carrier of a1;
let a5 be Element of (the Sorts of a2) . a4;
func A5 -term(A2,A3) -> Element of a1 -Terms ((the Sorts of a2) \/ a3) equals
root-tree [a5,a4];
end;
:: MSATERM:def 3
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being non-empty ManySortedSet of the carrier of b1
for b4 being Element of the carrier of b1
for b5 being Element of (the Sorts of b2) . b4 holds
b5 -term(b2,b3) = root-tree [b5,b4];
:: MSATERM:funcnot 5 => MSATERM:func 5
definition
let a1 be non empty non void ManySortedSign;
let a2 be MSAlgebra over a1;
let a3 be non-empty ManySortedSet of the carrier of a1;
let a4 be Element of the carrier of a1;
let a5 be Element of a3 . a4;
func A5 -term A2 -> Element of a1 -Terms ((the Sorts of a2) \/ a3) equals
root-tree [a5,a4];
end;
:: MSATERM:def 4
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3 being non-empty ManySortedSet of the carrier of b1
for b4 being Element of the carrier of b1
for b5 being Element of b3 . b4 holds
b5 -term b2 = root-tree [b5,b4];
:: MSATERM:funcnot 6 => MSATERM:func 6
definition
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
let a3 be Element of NonTerminals DTConMSA a2;
let a4 be ArgumentSeq of a3;
redefine func a3 -tree a4 -> Element of a1 -Terms a2;
end;
:: MSATERM:sch 3
scheme MSATERM:sch 3
{F1 -> non empty non void ManySortedSign,
F2 -> non-empty MSAlgebra over F1(),
F3 -> non-empty ManySortedSet of the carrier of F1()}:
for b1 being Element of F1() -Terms ((the Sorts of F2()) \/ F3()) holds
P1[b1]
provided
for b1 being Element of the carrier of F1()
for b2 being Element of (the Sorts of F2()) . b1 holds
P1[b2 -term(F2(),F3())]
and
for b1 being Element of the carrier of F1()
for b2 being Element of F3() . b1 holds
P1[b2 -term F2()]
and
for b1 being Element of the OperSymbols of F1()
for b2 being ArgumentSeq of Sym(b1,(the Sorts of F2()) \/ F3())
st for b3 being Element of F1() -Terms ((the Sorts of F2()) \/ F3())
st b3 in proj2 b2
holds P1[b3]
holds P1[(Sym(b1,(the Sorts of F2()) \/ F3())) -tree b2];
:: MSATERM:th 11
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of b1 -Terms b2 holds
ex b4 being Element of the carrier of b1 st
b3 in FreeSort(b2,b4);
:: MSATERM:th 12
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of the carrier of b1 holds
FreeSort(b2,b3) c= b1 -Terms b2;
:: MSATERM:th 13
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1 holds
b1 -Terms b2 = Union FreeSort b2;
:: MSATERM:funcnot 7 => MSATERM:func 7
definition
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
let a3 be Element of a1 -Terms a2;
func the_sort_of A3 -> Element of the carrier of a1 means
a3 in FreeSort(a2,it);
end;
:: MSATERM:def 5
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of b1 -Terms b2
for b4 being Element of the carrier of b1 holds
b4 = the_sort_of b3
iff
b3 in FreeSort(b2,b4);
:: MSATERM:th 14
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of b1 -Terms b2
for b4 being Element of the carrier of b1
for b5 being Element of b2 . b4
st b3 = root-tree [b5,b4]
holds the_sort_of b3 = b4;
:: MSATERM:th 15
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being MSAlgebra over b1
for b4 being Element of b1 -Terms ((the Sorts of b3) \/ b2)
for b5 being Element of the carrier of b1
for b6 being set
st b6 in (the Sorts of b3) . b5 & b4 = root-tree [b6,b5]
holds the_sort_of b4 = b5;
:: MSATERM:th 16
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being MSAlgebra over b1
for b4 being Element of b1 -Terms ((the Sorts of b3) \/ b2)
for b5 being Element of the carrier of b1
for b6 being Element of b2 . b5
st b4 = root-tree [b6,b5]
holds the_sort_of b4 = b5;
:: MSATERM:th 17
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of b1 -Terms b2
for b4 being Element of the OperSymbols of b1
st b3 . {} = [b4,the carrier of b1]
holds the_sort_of b3 = the_result_sort_of b4;
:: MSATERM:th 18
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being non-empty MSAlgebra over b1
for b4 being Element of the carrier of b1
for b5 being Element of (the Sorts of b3) . b4 holds
the_sort_of (b5 -term(b3,b2)) = b4;
:: MSATERM:th 19
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being MSAlgebra over b1
for b4 being Element of the carrier of b1
for b5 being Element of b2 . b4 holds
the_sort_of (b5 -term b3) = b4;
:: MSATERM:th 20
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of the OperSymbols of b1
for b4 being ArgumentSeq of Sym(b3,b2) holds
the_sort_of ((Sym(b3,b2)) -tree b4) = the_result_sort_of b3;
:: MSATERM:th 21
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of the OperSymbols of b1
for b4 being FinSequence of b1 -Terms b2 holds
b4 is ArgumentSeq of Sym(b3,b2)
iff
Sym(b3,b2) ==> roots b4;
:: MSATERM:th 22
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of the OperSymbols of b1
for b4 being ArgumentSeq of Sym(b3,b2) holds
len b4 = len the_arity_of b3 &
dom b4 = dom the_arity_of b3 &
(for b5 being natural set
st b5 in dom b4
holds b4 . b5 is Element of b1 -Terms b2);
:: MSATERM:th 23
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of the OperSymbols of b1
for b4 being ArgumentSeq of Sym(b3,b2)
for b5 being natural set
st b5 in dom b4
for b6 being Element of b1 -Terms b2
st b6 = b4 . b5
holds b6 = b4 /. b5 & the_sort_of b6 = (the_arity_of b3) . b5 & the_sort_of b6 = (the_arity_of b3) /. b5;
:: MSATERM:th 24
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of the OperSymbols of b1
for b4 being Relation-like Function-like FinSequence-like set
st (len b4 = len the_arity_of b3 or dom b4 = dom the_arity_of b3) &
(for b5 being natural set
st b5 in dom b4
holds ex b6 being Element of b1 -Terms b2 st
b6 = b4 . b5 & the_sort_of b6 = (the_arity_of b3) . b5 or for b5 being natural set
st b5 in dom b4
holds ex b6 being Element of b1 -Terms b2 st
b6 = b4 . b5 & the_sort_of b6 = (the_arity_of b3) /. b5)
holds b4 is ArgumentSeq of Sym(b3,b2);
:: MSATERM:th 25
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of the OperSymbols of b1
for b4 being FinSequence of b1 -Terms b2
st (len b4 = len the_arity_of b3 or dom b4 = dom the_arity_of b3) &
(for b5 being natural set
st b5 in dom b4
for b6 being Element of b1 -Terms b2
st b6 = b4 . b5
holds the_sort_of b6 = (the_arity_of b3) . b5 or for b5 being natural set
st b5 in dom b4
for b6 being Element of b1 -Terms b2
st b6 = b4 . b5
holds the_sort_of b6 = (the_arity_of b3) /. b5)
holds b4 is ArgumentSeq of Sym(b3,b2);
:: MSATERM:th 26
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being non-empty ManySortedSet of the carrier of b1
st b2 c= b3
for b4 being Element of b1 -Terms b2 holds
b4 is Element of b1 -Terms b3;
:: MSATERM:th 27
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3 being non-empty ManySortedSet of the carrier of b1
for b4 being Element of b1 -Terms b3 holds
b4 is Element of b1 -Terms ((the Sorts of b2) \/ b3);
:: MSATERM:modenot 5 => MSATERM:mode 2
definition
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
mode CompoundTerm of A1,A2 -> Element of a1 -Terms a2 means
it . {} in [:the OperSymbols of a1,{the carrier of a1}:];
end;
:: MSATERM:dfs 6
definiens
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
let a3 be Element of a1 -Terms a2;
To prove
a3 is CompoundTerm of a1,a2
it is sufficient to prove
thus a3 . {} in [:the OperSymbols of a1,{the carrier of a1}:];
:: MSATERM:def 6
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of b1 -Terms b2 holds
b3 is CompoundTerm of b1,b2
iff
b3 . {} in [:the OperSymbols of b1,{the carrier of b1}:];
:: MSATERM:modenot 6 => MSATERM:mode 3
definition
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
mode SetWithCompoundTerm of A1,A2 -> non empty Element of bool (a1 -Terms a2) means
ex b1 being CompoundTerm of a1,a2 st
b1 in it;
end;
:: MSATERM:dfs 7
definiens
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
let a3 be non empty Element of bool (a1 -Terms a2);
To prove
a3 is SetWithCompoundTerm of a1,a2
it is sufficient to prove
thus ex b1 being CompoundTerm of a1,a2 st
b1 in a3;
:: MSATERM:def 7
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being non empty Element of bool (b1 -Terms b2) holds
b3 is SetWithCompoundTerm of b1,b2
iff
ex b4 being CompoundTerm of b1,b2 st
b4 in b3;
:: MSATERM:th 28
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of b1 -Terms b2
st b3 is not root
holds b3 is CompoundTerm of b1,b2;
:: MSATERM:th 29
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of b1 -Terms b2
for b4 being Element of proj1 b3 holds
b3 | b4 is Element of b1 -Terms b2;
:: MSATERM:funcnot 8 => MSATERM:func 8
definition
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
let a3 be Element of a1 -Terms a2;
let a4 be Element of proj1 a3;
redefine func a3 | a4 -> Element of a1 -Terms a2;
end;
:: MSATERM:modenot 7 => MSATERM:mode 4
definition
let a1 be non empty non void ManySortedSign;
let a2 be MSAlgebra over a1;
mode Variables of A2 -> non-empty ManySortedSet of the carrier of a1 means
it misses the Sorts of a2;
end;
:: MSATERM:dfs 8
definiens
let a1 be non empty non void ManySortedSign;
let a2 be MSAlgebra over a1;
let a3 be non-empty ManySortedSet of the carrier of a1;
To prove
a3 is Variables of a2
it is sufficient to prove
thus a3 misses the Sorts of a2;
:: MSATERM:def 8
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3 being non-empty ManySortedSet of the carrier of b1 holds
b3 is Variables of b2
iff
b3 misses the Sorts of b2;
:: MSATERM:th 30
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3 being Variables of b2
for b4 being Element of the carrier of b1
for b5 being set
st b5 in (the Sorts of b2) . b4
for b6 being Element of b3 . b4 holds
b5 <> b6;
:: MSATERM:prednot 1 => MSATERM:pred 1
definition
let a1 be non empty non void ManySortedSign;
let a2 be non-empty MSAlgebra over a1;
let a3 be non-empty ManySortedSet of the carrier of a1;
let a4 be Element of a1 -Terms ((the Sorts of a2) \/ a3);
let a5 be ManySortedFunction of a3,the Sorts of a2;
let a6 be Relation-like Function-like finite DecoratedTree-like set;
pred A6 is_an_evaluation_of A4,A5 means
proj1 a6 = proj1 a4 &
(for b1 being Element of proj1 a6 holds
(for b2 being Element of the carrier of a1
for b3 being Element of a3 . b2
st a4 . b1 = [b3,b2]
holds a6 . b1 = (a5 . b2) . b3) &
(for b2 being Element of the carrier of a1
for b3 being Element of (the Sorts of a2) . b2
st a4 . b1 = [b3,b2]
holds a6 . b1 = b3) &
(for b2 being Element of the OperSymbols of a1
st a4 . b1 = [b2,the carrier of a1]
holds a6 . b1 = (Den(b2,a2)) . succ(a6,b1)));
end;
:: MSATERM:dfs 9
definiens
let a1 be non empty non void ManySortedSign;
let a2 be non-empty MSAlgebra over a1;
let a3 be non-empty ManySortedSet of the carrier of a1;
let a4 be Element of a1 -Terms ((the Sorts of a2) \/ a3);
let a5 be ManySortedFunction of a3,the Sorts of a2;
let a6 be Relation-like Function-like finite DecoratedTree-like set;
To prove
a6 is_an_evaluation_of a4,a5
it is sufficient to prove
thus proj1 a6 = proj1 a4 &
(for b1 being Element of proj1 a6 holds
(for b2 being Element of the carrier of a1
for b3 being Element of a3 . b2
st a4 . b1 = [b3,b2]
holds a6 . b1 = (a5 . b2) . b3) &
(for b2 being Element of the carrier of a1
for b3 being Element of (the Sorts of a2) . b2
st a4 . b1 = [b3,b2]
holds a6 . b1 = b3) &
(for b2 being Element of the OperSymbols of a1
st a4 . b1 = [b2,the carrier of a1]
holds a6 . b1 = (Den(b2,a2)) . succ(a6,b1)));
:: MSATERM:def 9
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being non-empty ManySortedSet of the carrier of b1
for b4 being Element of b1 -Terms ((the Sorts of b2) \/ b3)
for b5 being ManySortedFunction of b3,the Sorts of b2
for b6 being Relation-like Function-like finite DecoratedTree-like set holds
b6 is_an_evaluation_of b4,b5
iff
proj1 b6 = proj1 b4 &
(for b7 being Element of proj1 b6 holds
(for b8 being Element of the carrier of b1
for b9 being Element of b3 . b8
st b4 . b7 = [b9,b8]
holds b6 . b7 = (b5 . b8) . b9) &
(for b8 being Element of the carrier of b1
for b9 being Element of (the Sorts of b2) . b8
st b4 . b7 = [b9,b8]
holds b6 . b7 = b9) &
(for b8 being Element of the OperSymbols of b1
st b4 . b7 = [b8,the carrier of b1]
holds b6 . b7 = (Den(b8,b2)) . succ(b6,b7)));
:: MSATERM:th 31
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being Element of b1 -Terms ((the Sorts of b2) \/ b3)
for b5 being ManySortedFunction of b3,the Sorts of b2
for b6 being Element of the carrier of b1
for b7 being Element of (the Sorts of b2) . b6
st b4 = root-tree [b7,b6]
holds root-tree b7 is_an_evaluation_of b4,b5;
:: MSATERM:th 32
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being Element of b1 -Terms ((the Sorts of b2) \/ b3)
for b5 being ManySortedFunction of b3,the Sorts of b2
for b6 being Element of the carrier of b1
for b7 being Element of b3 . b6
st b4 = root-tree [b7,b6]
holds root-tree ((b5 . b6) . b7) is_an_evaluation_of b4,b5;
:: MSATERM:th 33
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being ManySortedFunction of b3,the Sorts of b2
for b5 being Element of the OperSymbols of b1
for b6 being ArgumentSeq of Sym(b5,(the Sorts of b2) \/ b3)
for b7 being Relation-like Function-like FinSequence-like DTree-yielding set
st len b7 = len b6 &
(for b8 being natural set
for b9 being Element of b1 -Terms ((the Sorts of b2) \/ b3)
st b8 in dom b6 & b9 = b6 . b8
holds ex b10 being Relation-like Function-like finite DecoratedTree-like set st
b10 = b7 . b8 & b10 is_an_evaluation_of b9,b4)
holds ex b8 being Relation-like Function-like finite DecoratedTree-like set st
b8 = ((Den(b5,b2)) . roots b7) -tree b7 &
b8 is_an_evaluation_of (Sym(b5,(the Sorts of b2) \/ b3)) -tree b6,b4;
:: MSATERM:th 34
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being ManySortedFunction of b3,the Sorts of b2
for b5 being Element of b1 -Terms ((the Sorts of b2) \/ b3)
for b6 being Relation-like Function-like finite DecoratedTree-like set
st b6 is_an_evaluation_of b5,b4
for b7 being Element of proj1 b5
for b8 being Element of proj1 b6
st b8 = b7
holds b6 | b8 is_an_evaluation_of b5 | b7,b4;
:: MSATERM:th 35
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being ManySortedFunction of b3,the Sorts of b2
for b5 being Element of the OperSymbols of b1
for b6 being ArgumentSeq of Sym(b5,(the Sorts of b2) \/ b3)
for b7 being Relation-like Function-like finite DecoratedTree-like set
st b7 is_an_evaluation_of (Sym(b5,(the Sorts of b2) \/ b3)) -tree b6,b4
holds ex b8 being Relation-like Function-like FinSequence-like DTree-yielding set st
len b8 = len b6 &
b7 = ((Den(b5,b2)) . roots b8) -tree b8 &
(for b9 being natural set
for b10 being Element of b1 -Terms ((the Sorts of b2) \/ b3)
st b9 in dom b6 & b10 = b6 . b9
holds ex b11 being Relation-like Function-like finite DecoratedTree-like set st
b11 = b8 . b9 & b11 is_an_evaluation_of b10,b4);
:: MSATERM:th 36
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being Element of b1 -Terms ((the Sorts of b2) \/ b3)
for b5 being ManySortedFunction of b3,the Sorts of b2 holds
ex b6 being Relation-like Function-like finite DecoratedTree-like set st
b6 is_an_evaluation_of b4,b5;
:: MSATERM:th 37
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being Element of b1 -Terms ((the Sorts of b2) \/ b3)
for b5 being ManySortedFunction of b3,the Sorts of b2
for b6, b7 being Relation-like Function-like finite DecoratedTree-like set
st b6 is_an_evaluation_of b4,b5 & b7 is_an_evaluation_of b4,b5
holds b6 = b7;
:: MSATERM:th 38
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being Element of b1 -Terms ((the Sorts of b2) \/ b3)
for b5 being ManySortedFunction of b3,the Sorts of b2
for b6 being Relation-like Function-like finite DecoratedTree-like set
st b6 is_an_evaluation_of b4,b5
holds b6 . {} in (the Sorts of b2) . the_sort_of b4;
:: MSATERM:funcnot 9 => MSATERM:func 9
definition
let a1 be non empty non void ManySortedSign;
let a2 be non-empty MSAlgebra over a1;
let a3 be Variables of a2;
let a4 be Element of a1 -Terms ((the Sorts of a2) \/ a3);
let a5 be ManySortedFunction of a3,the Sorts of a2;
func A4 @ A5 -> Element of (the Sorts of a2) . the_sort_of a4 means
ex b1 being Relation-like Function-like finite DecoratedTree-like set st
b1 is_an_evaluation_of a4,a5 & it = b1 . {};
end;
:: MSATERM:def 10
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being Element of b1 -Terms ((the Sorts of b2) \/ b3)
for b5 being ManySortedFunction of b3,the Sorts of b2
for b6 being Element of (the Sorts of b2) . the_sort_of b4 holds
b6 = b4 @ b5
iff
ex b7 being Relation-like Function-like finite DecoratedTree-like set st
b7 is_an_evaluation_of b4,b5 & b6 = b7 . {};
:: MSATERM:th 39
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being ManySortedFunction of b3,the Sorts of b2
for b5 being Element of b1 -Terms ((the Sorts of b2) \/ b3)
for b6 being Relation-like Function-like finite DecoratedTree-like set
st b6 is_an_evaluation_of b5,b4
holds b5 @ b4 = b6 . {};
:: MSATERM:th 40
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being ManySortedFunction of b3,the Sorts of b2
for b5 being Element of b1 -Terms ((the Sorts of b2) \/ b3)
for b6 being Relation-like Function-like finite DecoratedTree-like set
st b6 is_an_evaluation_of b5,b4
for b7 being Element of proj1 b5 holds
b6 . b7 = (b5 | b7) @ b4;
:: MSATERM:th 41
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being ManySortedFunction of b3,the Sorts of b2
for b5 being Element of the carrier of b1
for b6 being Element of (the Sorts of b2) . b5 holds
(b6 -term(b2,b3)) @ b4 = b6;
:: MSATERM:th 42
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being ManySortedFunction of b3,the Sorts of b2
for b5 being Element of the carrier of b1
for b6 being Element of b3 . b5 holds
(b6 -term b2) @ b4 = (b4 . b5) . b6;
:: MSATERM:th 43
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Variables of b2
for b4 being ManySortedFunction of b3,the Sorts of b2
for b5 being Element of the OperSymbols of b1
for b6 being ArgumentSeq of Sym(b5,(the Sorts of b2) \/ b3)
for b7 being Relation-like Function-like FinSequence-like set
st len b7 = len b6 &
(for b8 being natural set
st b8 in dom b6
for b9 being Element of b1 -Terms ((the Sorts of b2) \/ b3)
st b9 = b6 . b8
holds b7 . b8 = b9 @ b4)
holds ((Sym(b5,(the Sorts of b2) \/ b3)) -tree b6) @ b4 = (Den(b5,b2)) . b7;