:: BIRKHOFF semantic presentation
definition
let
c
1
be non
empty
non
void
ManySortedSign
;
let
c
2
be
V2
ManySortedSet
of the
carrier
of
c
1
;
let
c
3
be
non-empty
MSAlgebra
of
c
1
;
let
c
4
be
ManySortedFunction
of
c
2
,the
Sorts
of
c
3
;
func
c
4
-hash
->
ManySortedFunction
of
(
FreeMSA
a
2
)
,
a
3
means
:
Def1
:
:: BIRKHOFF:def 1
(
a
5
is_homomorphism
FreeMSA
a
2
,
a
3
&
a
5
||
(
FreeGen
a
2
)
=
a
4
**
(
Reverse
a
2
)
);
existence
ex
b
1
being
ManySortedFunction
of
(
FreeMSA
c
2
)
,
c
3
st
(
b
1
is_homomorphism
FreeMSA
c
2
,
c
3
&
b
1
||
(
FreeGen
c
2
)
=
c
4
**
(
Reverse
c
2
)
)
by
MSAFREE:def 5
;
uniqueness
for
b
1
,
b
2
being
ManySortedFunction
of
(
FreeMSA
c
2
)
,
c
3
st
b
1
is_homomorphism
FreeMSA
c
2
,
c
3
&
b
1
||
(
FreeGen
c
2
)
=
c
4
**
(
Reverse
c
2
)
&
b
2
is_homomorphism
FreeMSA
c
2
,
c
3
&
b
2
||
(
FreeGen
c
2
)
=
c
4
**
(
Reverse
c
2
)
holds
b
1
=
b
2
by
EXTENS_1:18
;
end;
::
deftheorem
Def1
defines
-hash
BIRKHOFF:def 1 :
for
b
1
being non
empty
non
void
ManySortedSign
for
b
2
being
V2
ManySortedSet
of the
carrier
of
b
1
for
b
3
being
non-empty
MSAlgebra
of
b
1
for
b
4
being
ManySortedFunction
of
b
2
,the
Sorts
of
b
3
for
b
5
being
ManySortedFunction
of
(
FreeMSA
b
2
)
,
b
3
holds
(
b
5
=
b
4
-hash
iff (
b
5
is_homomorphism
FreeMSA
b
2
,
b
3
&
b
5
||
(
FreeGen
b
2
)
=
b
4
**
(
Reverse
b
2
)
) );
theorem
Th1
:
:: BIRKHOFF:1
for
b
1
being non
empty
non
void
ManySortedSign
for
b
2
being
non-empty
MSAlgebra
of
b
1
for
b
3
being
V2
ManySortedSet
of the
carrier
of
b
1
for
b
4
being
ManySortedFunction
of
b
3
,the
Sorts
of
b
2
holds
rngs
b
4
c=
rngs
(
b
4
-hash
)
proof
end;
scheme
:: BIRKHOFF:sch 1
s1{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
non-empty
MSAlgebra
of
F
1
(),
P
1
[
set
] } :
ex
b
1
being
strict
non-empty
MSAlgebra
of
F
1
()ex
b
2
being
ManySortedFunction
of
F
2
(),
b
1
st
(
P
1
[
b
1
] &
b
2
is_epimorphism
F
2
(),
b
1
& ( for
b
3
being
non-empty
MSAlgebra
of
F
1
()
for
b
4
being
ManySortedFunction
of
F
2
(),
b
3
st
b
4
is_homomorphism
F
2
(),
b
3
&
P
1
[
b
3
] holds
ex
b
5
being
ManySortedFunction
of
b
1
,
b
3
st
(
b
5
is_homomorphism
b
1
,
b
3
&
b
5
**
b
2
=
b
4
& ( for
b
6
being
ManySortedFunction
of
b
1
,
b
3
st
b
6
**
b
2
=
b
4
holds
b
5
=
b
6
) ) ) )
provided
E3
: for
b
1
,
b
2
being
non-empty
MSAlgebra
of
F
1
() st
b
1
,
b
2
are_isomorphic
&
P
1
[
b
1
] holds
P
1
[
b
2
]
and
E4
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
strict
non-empty
MSSubAlgebra
of
b
1
st
P
1
[
b
1
] holds
P
1
[
b
2
]
and
E5
: for
b
1
being
set
for
b
2
being
MSAlgebra-Family
of
b
1
,
F
1
() st ( for
b
3
being
set
st
b
3
in
b
1
holds
ex
b
4
being
MSAlgebra
of
F
1
() st
(
b
4
=
b
2
.
b
3
&
P
1
[
b
4
] ) ) holds
P
1
[
product
b
2
]
proof
end;
scheme
:: BIRKHOFF:sch 2
s2{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
V2
ManySortedSet
of the
carrier
of
F
1
(),
P
1
[
set
] } :
ex
b
1
being
strict
non-empty
MSAlgebra
of
F
1
()ex
b
2
being
ManySortedFunction
of
F
2
(),the
Sorts
of
b
1
st
(
P
1
[
b
1
] & ( for
b
3
being
non-empty
MSAlgebra
of
F
1
()
for
b
4
being
ManySortedFunction
of
F
2
(),the
Sorts
of
b
3
st
P
1
[
b
3
] holds
ex
b
5
being
ManySortedFunction
of
b
1
,
b
3
st
(
b
5
is_homomorphism
b
1
,
b
3
&
b
5
**
b
2
=
b
4
& ( for
b
6
being
ManySortedFunction
of
b
1
,
b
3
st
b
6
is_homomorphism
b
1
,
b
3
&
b
6
**
b
2
=
b
4
holds
b
5
=
b
6
) ) ) )
provided
E3
: for
b
1
,
b
2
being
non-empty
MSAlgebra
of
F
1
() st
b
1
,
b
2
are_isomorphic
&
P
1
[
b
1
] holds
P
1
[
b
2
]
and
E4
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
strict
non-empty
MSSubAlgebra
of
b
1
st
P
1
[
b
1
] holds
P
1
[
b
2
]
and
E5
: for
b
1
being
set
for
b
2
being
MSAlgebra-Family
of
b
1
,
F
1
() st ( for
b
3
being
set
st
b
3
in
b
1
holds
ex
b
4
being
MSAlgebra
of
F
1
() st
(
b
4
=
b
2
.
b
3
&
P
1
[
b
4
] ) ) holds
P
1
[
product
b
2
]
proof
end;
scheme
:: BIRKHOFF:sch 3
s3{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
non-empty
MSAlgebra
of
F
1
(),
F
3
()
->
non-empty
MSAlgebra
of
F
1
(),
F
4
()
->
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
F
2
(),
F
5
()
->
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
F
3
(),
P
1
[
set
] } :
ex
b
1
being
ManySortedFunction
of
F
2
(),
F
3
() st
(
b
1
is_homomorphism
F
2
(),
F
3
() &
F
5
()
-hash
=
b
1
**
(
F
4
()
-hash
)
)
provided
E3
:
P
1
[
F
3
()]
and
E4
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
b
1
st
P
1
[
b
1
] holds
ex
b
3
being
ManySortedFunction
of
F
2
(),
b
1
st
(
b
3
is_homomorphism
F
2
(),
b
1
&
b
2
=
b
3
**
F
4
() )
proof
end;
scheme
:: BIRKHOFF:sch 4
s4{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
non-empty
MSAlgebra
of
F
1
(),
F
3
()
->
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
F
2
(),
F
4
()
->
SortSymbol
of
F
1
(),
F
5
()
->
Element
of the
Sorts
of
(
TermAlg
F
1
()
)
.
F
4
(),
F
6
()
->
Element
of the
Sorts
of
(
TermAlg
F
1
()
)
.
F
4
(),
P
1
[
set
] } :
for
b
1
being
non-empty
MSAlgebra
of
F
1
() st
P
1
[
b
1
] holds
b
1
|=
F
5
()
'='
F
6
()
provided
E3
:
(
(
F
3
()
-hash
)
.
F
4
()
)
.
F
5
()
=
(
(
F
3
()
-hash
)
.
F
4
()
)
.
F
6
()
and
E4
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
b
1
st
P
1
[
b
1
] holds
ex
b
3
being
ManySortedFunction
of
F
2
(),
b
1
st
(
b
3
is_homomorphism
F
2
(),
b
1
&
b
2
=
b
3
**
F
3
() )
proof
end;
scheme
:: BIRKHOFF:sch 5
s5{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
V2
ManySortedSet
of the
carrier
of
F
1
(),
F
3
()
->
strict
non-empty
MSAlgebra
of
F
1
(),
F
4
()
->
ManySortedFunction
of
F
2
(),the
Sorts
of
F
3
(),
P
1
[
set
] } :
F
4
()
.:.:
F
2
() is
V2
GeneratorSet
of
F
3
()
provided
E3
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
ManySortedFunction
of
F
2
(),the
Sorts
of
b
1
st
P
1
[
b
1
] holds
ex
b
3
being
ManySortedFunction
of
F
3
(),
b
1
st
(
b
3
is_homomorphism
F
3
(),
b
1
&
b
3
**
F
4
()
=
b
2
& ( for
b
4
being
ManySortedFunction
of
F
3
(),
b
1
st
b
4
is_homomorphism
F
3
(),
b
1
&
b
4
**
F
4
()
=
b
2
holds
b
3
=
b
4
) )
and
E4
:
P
1
[
F
3
()]
and
E5
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
strict
non-empty
MSSubAlgebra
of
b
1
st
P
1
[
b
1
] holds
P
1
[
b
2
]
proof
end;
scheme
:: BIRKHOFF:sch 6
s6{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
strict
non-empty
MSAlgebra
of
F
1
(),
F
3
()
->
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
F
2
(),
P
1
[
set
] } :
F
3
()
-hash
is_epimorphism
FreeMSA
(
the
carrier
of
F
1
()
-->
NAT
)
,
F
2
()
provided
E3
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
b
1
st
P
1
[
b
1
] holds
ex
b
3
being
ManySortedFunction
of
F
2
(),
b
1
st
(
b
3
is_homomorphism
F
2
(),
b
1
&
b
3
**
F
3
()
=
b
2
& ( for
b
4
being
ManySortedFunction
of
F
2
(),
b
1
st
b
4
is_homomorphism
F
2
(),
b
1
&
b
4
**
F
3
()
=
b
2
holds
b
3
=
b
4
) )
and
E4
:
P
1
[
F
2
()]
and
E5
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
strict
non-empty
MSSubAlgebra
of
b
1
st
P
1
[
b
1
] holds
P
1
[
b
2
]
proof
end;
scheme
:: BIRKHOFF:sch 7
s7{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
strict
non-empty
finitely-generated
MSAlgebra
of
F
1
(),
F
3
()
->
non-empty
MSAlgebra
of
F
1
(),
F
4
()
->
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
F
3
(),
P
1
[
set
],
P
2
[
set
] } :
P
1
[
F
2
()]
provided
E3
:
P
2
[
F
2
()]
and
E4
:
P
1
[
F
3
()]
and
E5
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
b
1
st
P
2
[
b
1
] holds
ex
b
3
being
ManySortedFunction
of
F
3
(),
b
1
st
(
b
3
is_homomorphism
F
3
(),
b
1
&
b
2
=
b
3
**
F
4
() )
and
E6
: for
b
1
,
b
2
being
non-empty
MSAlgebra
of
F
1
() st
b
1
,
b
2
are_isomorphic
&
P
1
[
b
1
] holds
P
1
[
b
2
]
and
E7
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
MSCongruence
of
b
1
st
P
1
[
b
1
] holds
P
1
[
QuotMSAlg
b
1
,
b
2
]
proof
end;
scheme
:: BIRKHOFF:sch 8
s8{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
non-empty
MSAlgebra
of
F
1
(),
F
3
()
->
non-empty
MSAlgebra
of
F
1
(),
P
1
[
set
] } :
P
1
[
F
3
()]
provided
E3
: ex
b
1
being
ManySortedFunction
of
F
2
(),
F
3
() st
b
1
is_epimorphism
F
2
(),
F
3
()
and
E4
:
P
1
[
F
2
()]
and
E5
: for
b
1
,
b
2
being
non-empty
MSAlgebra
of
F
1
() st
b
1
,
b
2
are_isomorphic
&
P
1
[
b
1
] holds
P
1
[
b
2
]
and
E6
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
MSCongruence
of
b
1
st
P
1
[
b
1
] holds
P
1
[
QuotMSAlg
b
1
,
b
2
]
proof
end;
scheme
:: BIRKHOFF:sch 9
s9{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
non-empty
MSAlgebra
of
F
1
(),
P
1
[
set
] } :
P
1
[
F
2
()]
provided
E3
: for
b
1
being
strict
non-empty
finitely-generated
MSSubAlgebra
of
F
2
() holds
P
1
[
b
1
]
and
E4
: for
b
1
,
b
2
being
non-empty
MSAlgebra
of
F
1
() st
b
1
,
b
2
are_isomorphic
&
P
1
[
b
1
] holds
P
1
[
b
2
]
and
E5
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
strict
non-empty
MSSubAlgebra
of
b
1
st
P
1
[
b
1
] holds
P
1
[
b
2
]
and
E6
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
MSCongruence
of
b
1
st
P
1
[
b
1
] holds
P
1
[
QuotMSAlg
b
1
,
b
2
]
and
E7
: for
b
1
being
set
for
b
2
being
MSAlgebra-Family
of
b
1
,
F
1
() st ( for
b
3
being
set
st
b
3
in
b
1
holds
ex
b
4
being
MSAlgebra
of
F
1
() st
(
b
4
=
b
2
.
b
3
&
P
1
[
b
4
] ) ) holds
P
1
[
product
b
2
]
proof
end;
scheme
:: BIRKHOFF:sch 10
s10{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
non-empty
MSAlgebra
of
F
1
(),
P
1
[
set
],
P
2
[
set
] } :
P
2
[
F
2
()]
provided
E3
: for
b
1
being
non-empty
MSAlgebra
of
F
1
() holds
(
P
2
[
b
1
] iff for
b
2
being
SortSymbol
of
F
1
()
for
b
3
being
Element
of
(
Equations
F
1
()
)
.
b
2
st ( for
b
4
being
non-empty
MSAlgebra
of
F
1
() st
P
1
[
b
4
] holds
b
4
|=
b
3
) holds
b
1
|=
b
3
)
and
E4
:
P
1
[
F
2
()]
proof
end;
scheme
:: BIRKHOFF:sch 11
s11{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
strict
non-empty
MSAlgebra
of
F
1
(),
F
3
()
->
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
F
2
(),
P
1
[
set
],
P
2
[
set
] } :
P
1
[
F
2
()]
provided
E3
: for
b
1
being
non-empty
MSAlgebra
of
F
1
() holds
(
P
2
[
b
1
] iff for
b
2
being
SortSymbol
of
F
1
()
for
b
3
being
Element
of
(
Equations
F
1
()
)
.
b
2
st ( for
b
4
being
non-empty
MSAlgebra
of
F
1
() st
P
1
[
b
4
] holds
b
4
|=
b
3
) holds
b
1
|=
b
3
)
and
E4
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
b
1
st
P
2
[
b
1
] holds
ex
b
3
being
ManySortedFunction
of
F
2
(),
b
1
st
(
b
3
is_homomorphism
F
2
(),
b
1
&
b
3
**
F
3
()
=
b
2
& ( for
b
4
being
ManySortedFunction
of
F
2
(),
b
1
st
b
4
is_homomorphism
F
2
(),
b
1
&
b
4
**
F
3
()
=
b
2
holds
b
3
=
b
4
) )
and
E5
:
P
2
[
F
2
()]
and
E6
: for
b
1
,
b
2
being
non-empty
MSAlgebra
of
F
1
() st
b
1
,
b
2
are_isomorphic
&
P
1
[
b
1
] holds
P
1
[
b
2
]
and
E7
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
strict
non-empty
MSSubAlgebra
of
b
1
st
P
1
[
b
1
] holds
P
1
[
b
2
]
and
E8
: for
b
1
being
set
for
b
2
being
MSAlgebra-Family
of
b
1
,
F
1
() st ( for
b
3
being
set
st
b
3
in
b
1
holds
ex
b
4
being
MSAlgebra
of
F
1
() st
(
b
4
=
b
2
.
b
3
&
P
1
[
b
4
] ) ) holds
P
1
[
product
b
2
]
proof
end;
scheme
:: BIRKHOFF:sch 12
s12{
F
1
()
->
non
empty
non
void
ManySortedSign
,
P
1
[
set
] } :
ex
b
1
being
EqualSet
of
F
1
() st
for
b
2
being
non-empty
MSAlgebra
of
F
1
() holds
(
P
1
[
b
2
] iff
b
2
|=
b
1
)
provided
E3
: for
b
1
,
b
2
being
non-empty
MSAlgebra
of
F
1
() st
b
1
,
b
2
are_isomorphic
&
P
1
[
b
1
] holds
P
1
[
b
2
]
and
E4
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
strict
non-empty
MSSubAlgebra
of
b
1
st
P
1
[
b
1
] holds
P
1
[
b
2
]
and
E5
: for
b
1
being
non-empty
MSAlgebra
of
F
1
()
for
b
2
being
MSCongruence
of
b
1
st
P
1
[
b
1
] holds
P
1
[
QuotMSAlg
b
1
,
b
2
]
and
E6
: for
b
1
being
set
for
b
2
being
MSAlgebra-Family
of
b
1
,
F
1
() st ( for
b
3
being
set
st
b
3
in
b
1
holds
ex
b
4
being
MSAlgebra
of
F
1
() st
(
b
4
=
b
2
.
b
3
&
P
1
[
b
4
] ) ) holds
P
1
[
product
b
2
]
proof
end;