myhill nerode Sections AutomataTheory Doc

Def EquivRel x,y:T. E(x;y) == Refl(T;x,y.E(x;y)) & Sym x,y:T. E(x;y) & Trans x,y:T. E(x;y)

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