Thm*
n:{1...}, A:Type, L:LangOver(A), R:(A*![]()
A*![]()
Prop).
Fin(A) ![]()
(EquivRel x,y:A*. x R y) ![]()
(
n ~ (x,y:A*//(x R y))) ![]()
(
x,y,z:A*. (x R y) ![]()
((z @ x) R (z @ y))) ![]()
(
g:((x,y:A*//(x R y))![]()
![]()
).
l:A*. L(l) ![]()
g(l)) ![]()
(
m:
.
m ~ (x,y:A*//(x L-induced Equiv y))) & (
l:A*. Dec(L(l)))
mn_23
Thm*
L:LangOver(Alph), R:(Alph*![]()
Alph*![]()
Prop).
(EquivRel x,y:Alph*. x R y) ![]()
(
x,y,z:Alph*. (x R y) ![]()
((z @ x) R (z @ y))) ![]()
(
g:((x,y:Alph*//(x R y))![]()
![]()
).
(
l:Alph*. L(l) ![]()
g(l)) ![]()
x,y:Alph*//(x L-induced Equiv y) = x,y:Alph*//(x Rg y))
mn_23_Rl_equal_Rg
Thm*
R:(Alph*![]()
Alph*![]()
Prop).
Fin(Alph) ![]()
(EquivRel x,y:Alph*. x R y) ![]()
Fin(x,y:Alph*//(x R y)) ![]()
(
x,y,z:Alph*. (x R y) ![]()
((z @ x) R (z @ y))) ![]()
(
g:((x,y:Alph*//(x R y))![]()
![]()
), x,y:x,y:Alph*//(x R y). Dec(x Rg y))
mn_23_lem_1
Thm*
R:(Alph*![]()
Alph*![]()
Prop).
Fin(Alph) ![]()
(EquivRel x,y:Alph*. x R y) ![]()
Fin(x,y:Alph*//(x R y)) ![]()
(
x,y,z:Alph*. (x R y) ![]()
((z @ x) R (z @ y))) ![]()
(
g:((x,y:Alph*//(x R y))![]()
![]()
), x,y:x,y:Alph*//(x R y). Dec(x Rg y))
mn_23_lem
Thm*
L:LangOver(Alph), R:(Alph*![]()
Alph*![]()
Prop).
(EquivRel x,y:Alph*. x R y) ![]()
(
g:((x,y:Alph*//(x R y))![]()
![]()
).
l:Alph*. L(l) ![]()
g(l))
& (
x,y,z:Alph*. (x R y) ![]()
((z @ x) R (z @ y)))
![]()
(
x,y:Alph*. (x R y) ![]()
(x L-induced Equiv y))
mn_23_refinment
Thm*
L:LangOver(Alph).
Fin(Alph) ![]()
(
St:Type, Auto:Automata(Alph;St). Fin(St) & L = LangOf(Auto)) ![]()
(
R:(Alph*![]()
Alph*![]()
Prop).
(EquivRel x,y:Alph*. x R y) c
(
g:((x,y:Alph*//R(x,y))![]()
![]()
).
Fin(x,y:Alph*//R(x,y))
& (
l:Alph*. L(l) ![]()
g(l))
& (
x,y,z:Alph*. R(x,y) ![]()
R((z @ x),z @ y))))
mn_12
Thm*
R:(A*![]()
A*![]()
Prop).
(EquivRel x,y:A*. x R y) ![]()
(
x,y,z:A*. (x R y) ![]()
((z @ x) R (z @ y))) ![]()
(
g:((x,y:A*//(x R y))![]()
![]()
), L:LangOver(A).
(
l:A*. L(l) ![]()
g(l)) ![]()
(
x,y:A*. (x L-induced Equiv y) ![]()
(x Rg y)))
Rl_iff_Rg
Thm*
R:(A*![]()
A*![]()
Prop).
(EquivRel x,y:A*. x R y) ![]()
(
x,y,z:A*. (x R y) ![]()
((z @ x) R (z @ y))) ![]()
(
g:((x,y:A*//(x R y))![]()
![]()
). EquivRel u,v:x,y:A*//(x R y). u Rg v)
lquo_rel_equi
Thm*
R:(A*![]()
A*![]()
Prop).
(EquivRel x,y:A*. x R y) ![]()
(
x,y,z:A*. (x R y) ![]()
((z @ x) R (z @ y))) ![]()
(
g:((x,y:A*//(x R y))![]()
![]()
). Trans u,v:x,y:A*//(x R y). u Rg v)
lquo_rel_tran
Thm*
R:(A*![]()
A*![]()
Prop).
(EquivRel x,y:A*. x R y) ![]()
(
x,y,z:A*. (x R y) ![]()
((z @ x) R (z @ y))) ![]()
(
g:((x,y:A*//(x R y))![]()
![]()
). Sym u,v:x,y:A*//(x R y). u Rg v)
lquo_rel_symm
Thm*
R:(A*![]()
A*![]()
Prop).
(EquivRel x,y:A*. x R y) ![]()
(
x,y,z:A*. (x R y) ![]()
((z @ x) R (z @ y))) ![]()
(
g:((x,y:A*//(x R y))![]()
![]()
). Refl(x,y:A*//(x R y);u,v.u Rg v))
lquo_rel_refl
Thm*
R:(Alph*![]()
Alph*![]()
Prop).
(EquivRel x,y:Alph*. x R y) ![]()
(
x,y,z:Alph*. (x R y) ![]()
((z @ x) R (z @ y))) ![]()
(
z1,z2:Alph*, y:x,y:Alph*//(x R y). z1 @ z2@
y = z1@
z2@
y)
mn_quo_append_assoc
Thm*
A:Type, R:(A*![]()
A*![]()
Prop).
(EquivRel x,y:A*. x R y) ![]()
(
x,y,z:A*. (x R y) ![]()
((z @ x) R (z @ y))) ![]()
(
z:A*, y:x,y:A*//(x R y). z@
y
x,y:A*//(x R y))
mn_quo_append_wf
Thm*
L:LangOver(A). EquivRel x,y:A*. x L-induced Equiv y lang_rel_equi
In prior sections: rel 1 quot 1 relation autom