:: BIRKHOFF semantic presentation
:: Showing IDV graph ... (Click the Palm Trees again to close it)
definition
let
S
be non
empty
non
void
ManySortedSign
;
let
X
be
V2
ManySortedSet
of the
carrier
of
S
;
let
A
be
non-empty
MSAlgebra
of
S
;
let
F
be
ManySortedFunction
of
X
,the
Sorts
of
A
;
func
F
-hash
->
ManySortedFunction
of
(
FreeMSA
X
)
,
A
means
:
Def1
:
:: BIRKHOFF:def 1
(
it
is_homomorphism
FreeMSA
X
,
A
&
it
||
(
FreeGen
X
)
=
F
**
(
Reverse
X
)
);
existence
ex
b
1
being
ManySortedFunction
of
(
FreeMSA
X
)
,
A
st
(
b
1
is_homomorphism
FreeMSA
X
,
A
&
b
1
||
(
FreeGen
X
)
=
F
**
(
Reverse
X
)
)
by
MSAFREE:def 5
;
uniqueness
for
b
1
,
b
2
being
ManySortedFunction
of
(
FreeMSA
X
)
,
A
st
b
1
is_homomorphism
FreeMSA
X
,
A
&
b
1
||
(
FreeGen
X
)
=
F
**
(
Reverse
X
)
&
b
2
is_homomorphism
FreeMSA
X
,
A
&
b
2
||
(
FreeGen
X
)
=
F
**
(
Reverse
X
)
holds
b
1
=
b
2
by
EXTENS_1:18
;
end;
::
deftheorem
Def1
defines
-hash
BIRKHOFF:def 1 :
for
S
being non
empty
non
void
ManySortedSign
for
X
being
V2
ManySortedSet
of the
carrier
of
S
for
A
being
non-empty
MSAlgebra
of
S
for
F
being
ManySortedFunction
of
X
,the
Sorts
of
A
for
b
5
being
ManySortedFunction
of
(
FreeMSA
X
)
,
A
holds
(
b
5
=
F
-hash
iff (
b
5
is_homomorphism
FreeMSA
X
,
A
&
b
5
||
(
FreeGen
X
)
=
F
**
(
Reverse
X
)
) );
theorem
Th1
:
:: BIRKHOFF:1
:: Showing IDV graph ... (Click the Palm Tree again to close it)
for
S
being non
empty
non
void
ManySortedSign
for
A
being
non-empty
MSAlgebra
of
S
for
X
being
V2
ManySortedSet
of the
carrier
of
S
for
F
being
ManySortedFunction
of
X
,the
Sorts
of
A
holds
rngs
F
c=
rngs
(
F
-hash
)
proof
end;
scheme
:: BIRKHOFF:sch 1
ExFreeAlg1
{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
non-empty
MSAlgebra
of
F
1
(),
P
1
[
set
] } :
ex
A
being
strict
non-empty
MSAlgebra
of
F
1
() ex
F
being
ManySortedFunction
of
F
2
(),
A
st
(
P
1
[
A
] &
F
is_epimorphism
F
2
(),
A
& ( for
B
being
non-empty
MSAlgebra
of
F
1
()
for
G
being
ManySortedFunction
of
F
2
(),
B
st
G
is_homomorphism
F
2
(),
B
&
P
1
[
B
] holds
ex
H
being
ManySortedFunction
of
A
,
B
st
(
H
is_homomorphism
A
,
B
&
H
**
F
=
G
& ( for
K
being
ManySortedFunction
of
A
,
B
st
K
**
F
=
G
holds
H
=
K
) ) ) )
provided
A1
: for
A
,
B
being
non-empty
MSAlgebra
of
F
1
() st
A
,
B
are_isomorphic
&
P
1
[
A
] holds
P
1
[
B
]
and
A2
: for
A
being
non-empty
MSAlgebra
of
F
1
()
for
B
being
strict
non-empty
MSSubAlgebra
of
A
st
P
1
[
A
] holds
P
1
[
B
]
and
A3
: for
I
being
set
for
F
being
MSAlgebra-Family
of
I
,
F
1
() st ( for
i
being
set
st
i
in
I
holds
ex
A
being
MSAlgebra
of
F
1
() st
(
A
=
F
.
i
&
P
1
[
A
] ) ) holds
P
1
[
product
F
]
proof
end;
scheme
:: BIRKHOFF:sch 2
ExFreeAlg2
{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
V2
ManySortedSet
of the
carrier
of
F
1
(),
P
1
[
set
] } :
ex
A
being
strict
non-empty
MSAlgebra
of
F
1
() ex
F
being
ManySortedFunction
of
F
2
(),the
Sorts
of
A
st
(
P
1
[
A
] & ( for
B
being
non-empty
MSAlgebra
of
F
1
()
for
G
being
ManySortedFunction
of
F
2
(),the
Sorts
of
B
st
P
1
[
B
] holds
ex
H
being
ManySortedFunction
of
A
,
B
st
(
H
is_homomorphism
A
,
B
&
H
**
F
=
G
& ( for
K
being
ManySortedFunction
of
A
,
B
st
K
is_homomorphism
A
,
B
&
K
**
F
=
G
holds
H
=
K
) ) ) )
provided
A1
: for
A
,
B
being
non-empty
MSAlgebra
of
F
1
() st
A
,
B
are_isomorphic
&
P
1
[
A
] holds
P
1
[
B
]
and
A2
: for
A
being
non-empty
MSAlgebra
of
F
1
()
for
B
being
strict
non-empty
MSSubAlgebra
of
A
st
P
1
[
A
] holds
P
1
[
B
]
and
A3
: for
I
being
set
for
F
being
MSAlgebra-Family
of
I
,
F
1
() st ( for
i
being
set
st
i
in
I
holds
ex
A
being
MSAlgebra
of
F
1
() st
(
A
=
F
.
i
&
P
1
[
A
] ) ) holds
P
1
[
product
F
]
proof
end;
scheme
:: BIRKHOFF:sch 3
Exhash
{
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
H
being
ManySortedFunction
of
F
2
(),
F
3
() st
(
H
is_homomorphism
F
2
(),
F
3
() &
F
5
()
-hash
=
H
**
(
F
4
()
-hash
)
)
provided
A1
:
P
1
[
F
3
()]
and
A2
: for
C
being
non-empty
MSAlgebra
of
F
1
()
for
G
being
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
C
st
P
1
[
C
] holds
ex
h
being
ManySortedFunction
of
F
2
(),
C
st
(
h
is_homomorphism
F
2
(),
C
&
G
=
h
**
F
4
() )
proof
end;
scheme
:: BIRKHOFF:sch 4
EqTerms
{
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
being
non-empty
MSAlgebra
of
F
1
() st
P
1
[
B
] holds
B
|=
F
5
()
'='
F
6
()
provided
A1
:
(
(
F
3
()
-hash
)
.
F
4
()
)
.
F
5
()
=
(
(
F
3
()
-hash
)
.
F
4
()
)
.
F
6
()
and
A2
: for
C
being
non-empty
MSAlgebra
of
F
1
()
for
G
being
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
C
st
P
1
[
C
] holds
ex
h
being
ManySortedFunction
of
F
2
(),
C
st
(
h
is_homomorphism
F
2
(),
C
&
G
=
h
**
F
3
() )
proof
end;
scheme
:: BIRKHOFF:sch 5
FreeIsGen
{
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
A1
: for
C
being
non-empty
MSAlgebra
of
F
1
()
for
G
being
ManySortedFunction
of
F
2
(),the
Sorts
of
C
st
P
1
[
C
] holds
ex
H
being
ManySortedFunction
of
F
3
(),
C
st
(
H
is_homomorphism
F
3
(),
C
&
H
**
F
4
()
=
G
& ( for
K
being
ManySortedFunction
of
F
3
(),
C
st
K
is_homomorphism
F
3
(),
C
&
K
**
F
4
()
=
G
holds
H
=
K
) )
and
A2
:
P
1
[
F
3
()]
and
A3
: for
A
being
non-empty
MSAlgebra
of
F
1
()
for
B
being
strict
non-empty
MSSubAlgebra
of
A
st
P
1
[
A
] holds
P
1
[
B
]
proof
end;
scheme
:: BIRKHOFF:sch 6
Hashisonto
{
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
A1
: for
C
being
non-empty
MSAlgebra
of
F
1
()
for
G
being
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
C
st
P
1
[
C
] holds
ex
H
being
ManySortedFunction
of
F
2
(),
C
st
(
H
is_homomorphism
F
2
(),
C
&
H
**
F
3
()
=
G
& ( for
K
being
ManySortedFunction
of
F
2
(),
C
st
K
is_homomorphism
F
2
(),
C
&
K
**
F
3
()
=
G
holds
H
=
K
) )
and
A2
:
P
1
[
F
2
()]
and
A3
: for
A
being
non-empty
MSAlgebra
of
F
1
()
for
B
being
strict
non-empty
MSSubAlgebra
of
A
st
P
1
[
A
] holds
P
1
[
B
]
proof
end;
scheme
:: BIRKHOFF:sch 7
FinGenAlgInVar
{
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
A1
:
P
2
[
F
2
()]
and
A2
:
P
1
[
F
3
()]
and
A3
: for
C
being
non-empty
MSAlgebra
of
F
1
()
for
G
being
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
C
st
P
2
[
C
] holds
ex
h
being
ManySortedFunction
of
F
3
(),
C
st
(
h
is_homomorphism
F
3
(),
C
&
G
=
h
**
F
4
() )
and
A4
: for
A
,
B
being
non-empty
MSAlgebra
of
F
1
() st
A
,
B
are_isomorphic
&
P
1
[
A
] holds
P
1
[
B
]
and
A5
: for
A
being
non-empty
MSAlgebra
of
F
1
()
for
R
being
MSCongruence
of
A
st
P
1
[
A
] holds
P
1
[
QuotMSAlg
A
,
R
]
proof
end;
scheme
:: BIRKHOFF:sch 8
QuotEpi
{
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
A1
: ex
H
being
ManySortedFunction
of
F
2
(),
F
3
() st
H
is_epimorphism
F
2
(),
F
3
()
and
A2
:
P
1
[
F
2
()]
and
A3
: for
A
,
B
being
non-empty
MSAlgebra
of
F
1
() st
A
,
B
are_isomorphic
&
P
1
[
A
] holds
P
1
[
B
]
and
A4
: for
A
being
non-empty
MSAlgebra
of
F
1
()
for
R
being
MSCongruence
of
A
st
P
1
[
A
] holds
P
1
[
QuotMSAlg
A
,
R
]
proof
end;
scheme
:: BIRKHOFF:sch 9
AllFinGen
{
F
1
()
->
non
empty
non
void
ManySortedSign
,
F
2
()
->
non-empty
MSAlgebra
of
F
1
(),
P
1
[
set
] } :
P
1
[
F
2
()]
provided
A1
: for
B
being
strict
non-empty
finitely-generated
MSSubAlgebra
of
F
2
() holds
P
1
[
B
]
and
A2
: for
A
,
B
being
non-empty
MSAlgebra
of
F
1
() st
A
,
B
are_isomorphic
&
P
1
[
A
] holds
P
1
[
B
]
and
A3
: for
A
being
non-empty
MSAlgebra
of
F
1
()
for
B
being
strict
non-empty
MSSubAlgebra
of
A
st
P
1
[
A
] holds
P
1
[
B
]
and
A4
: for
A
being
non-empty
MSAlgebra
of
F
1
()
for
R
being
MSCongruence
of
A
st
P
1
[
A
] holds
P
1
[
QuotMSAlg
A
,
R
]
and
A5
: for
I
being
set
for
F
being
MSAlgebra-Family
of
I
,
F
1
() st ( for
i
being
set
st
i
in
I
holds
ex
A
being
MSAlgebra
of
F
1
() st
(
A
=
F
.
i
&
P
1
[
A
] ) ) holds
P
1
[
product
F
]
proof
end;
scheme
:: BIRKHOFF:sch 10
FreeInModIsInVar1
{
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
A1
: for
A
being
non-empty
MSAlgebra
of
F
1
() holds
(
P
2
[
A
] iff for
s
being
SortSymbol
of
F
1
()
for
e
being
Element
of
(
Equations
F
1
()
)
.
s
st ( for
B
being
non-empty
MSAlgebra
of
F
1
() st
P
1
[
B
] holds
B
|=
e
) holds
A
|=
e
)
and
A2
:
P
1
[
F
2
()]
proof
end;
scheme
:: BIRKHOFF:sch 11
FreeInModIsInVar
{
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
A1
: for
A
being
non-empty
MSAlgebra
of
F
1
() holds
(
P
2
[
A
] iff for
s
being
SortSymbol
of
F
1
()
for
e
being
Element
of
(
Equations
F
1
()
)
.
s
st ( for
B
being
non-empty
MSAlgebra
of
F
1
() st
P
1
[
B
] holds
B
|=
e
) holds
A
|=
e
)
and
A2
: for
C
being
non-empty
MSAlgebra
of
F
1
()
for
G
being
ManySortedFunction
of the
carrier
of
F
1
()
-->
NAT
,the
Sorts
of
C
st
P
2
[
C
] holds
ex
H
being
ManySortedFunction
of
F
2
(),
C
st
(
H
is_homomorphism
F
2
(),
C
&
H
**
F
3
()
=
G
& ( for
K
being
ManySortedFunction
of
F
2
(),
C
st
K
is_homomorphism
F
2
(),
C
&
K
**
F
3
()
=
G
holds
H
=
K
) )
and
A3
:
P
2
[
F
2
()]
and
A4
: for
A
,
B
being
non-empty
MSAlgebra
of
F
1
() st
A
,
B
are_isomorphic
&
P
1
[
A
] holds
P
1
[
B
]
and
A5
: for
A
being
non-empty
MSAlgebra
of
F
1
()
for
B
being
strict
non-empty
MSSubAlgebra
of
A
st
P
1
[
A
] holds
P
1
[
B
]
and
A6
: for
I
being
set
for
F
being
MSAlgebra-Family
of
I
,
F
1
() st ( for
i
being
set
st
i
in
I
holds
ex
A
being
MSAlgebra
of
F
1
() st
(
A
=
F
.
i
&
P
1
[
A
] ) ) holds
P
1
[
product
F
]
proof
end;
scheme
:: BIRKHOFF:sch 12
Birkhoff
{
F
1
()
->
non
empty
non
void
ManySortedSign
,
P
1
[
set
] } :
ex
E
being
EqualSet
of
F
1
() st
for
A
being
non-empty
MSAlgebra
of
F
1
() holds
(
P
1
[
A
] iff
A
|=
E
)
provided
A1
: for
A
,
B
being
non-empty
MSAlgebra
of
F
1
() st
A
,
B
are_isomorphic
&
P
1
[
A
] holds
P
1
[
B
]
and
A2
: for
A
being
non-empty
MSAlgebra
of
F
1
()
for
B
being
strict
non-empty
MSSubAlgebra
of
A
st
P
1
[
A
] holds
P
1
[
B
]
and
A3
: for
A
being
non-empty
MSAlgebra
of
F
1
()
for
R
being
MSCongruence
of
A
st
P
1
[
A
] holds
P
1
[
QuotMSAlg
A
,
R
]
and
A4
: for
I
being
set
for
F
being
MSAlgebra-Family
of
I
,
F
1
() st ( for
i
being
set
st
i
in
I
holds
ex
A
being
MSAlgebra
of
F
1
() st
(
A
=
F
.
i
&
P
1
[
A
] ) ) holds
P
1
[
product
F
]
proof
end;