Thms automata 5 Sections AutomataTheory Doc

auto_lang Def LangOf(DA)(l) == DA(l)

Thm* Alph,St:Type, A:Automata(Alph;St). LangOf(A) LangOver(Alph)

automata Def Automata(Alph;States) == (StatesAlphStates)States(States)

Thm* Alph,States:Type{i}. Automata(Alph;States) Type{i'}

equiv_rel 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* T:Type, E:(TTProp). (EquivRel x,y:T. E(x,y)) Prop

lang_eq Def L = M == l:Alph*. L(l) M(l)

Thm* Alph:Type{i}, L,M:LangOver(Alph). L = M Prop{i'}

lang_rel Def L-induced Equiv(x,y) == z:A*. L(z @ x) L(z @ y)

Thm* A:Type, L:LangOver(A). L-induced Equiv A*A*Prop

accept_list Def DA(l) == FinalState(DA)(Result(DA)l)

Thm* Alph,St:Type, A:Automata(Alph;St), l:Alph*. A(l)

assert Def b == if b True else False fi

Thm* b:. b Prop

trans Def Trans x,y:T. E(x;y) == a,b,c:T. E(a;b) E(b;c) E(a;c)

Thm* T:Type, E:(TTProp). Trans x,y:T. E(x,y) Prop

sym Def Sym x,y:T. E(x;y) == a,b:T. E(a;b) E(b;a)

Thm* T:Type, E:(TTProp). Sym x,y:T. E(x,y) Prop

refl Def Refl(T;x,y.E(x;y)) == a:T. E(a;a)

Thm* T:Type, E:(TTProp). Refl(T;x,y.E(x,y)) Prop

iff Def P Q == (P Q) & (P Q)

Thm* A,B:Prop. (A B) Prop

append Def as @ bs == Case of as; nil bs ; a.as' a.(as' @ bs) (recursive)

Thm* T:Type, as,bs:T*. (as @ bs) T*

compute_list Def Result(DA)l == if null(l) InitialState(DA) else DA((Result(DA)tl(l)),hd(l)) fi (recursive)

Thm* Alph,St:Type, A:Automata(Alph;St), l:Alph*. (Result(A)l) St

DA_fin Def FinalState(a) == 2of(2of(a))

Thm* Alph,States:Type, a:Automata(Alph;States). FinalState(a) States

rev_implies Def P Q == Q P

Thm* A,B:Prop. (A B) Prop

hd Def hd(l) == Case of l; nil "?" ; h.t h

Thm* A:Type, l:A*. ||l||1 hd(l) A

tl Def tl(l) == Case of l; nil nil ; h.t t

Thm* A:Type, l:A*. tl(l) A*

DA_act Def a == 1of(a)

Thm* Alph,States:Type, a:Automata(Alph;States). a StatesAlphStates

DA_init Def InitialState(a) == 1of(2of(a))

Thm* Alph,States:Type, a:Automata(Alph;States). InitialState(a) States

null Def null(as) == Case of as; nil true ; a.as' false

Thm* T:Type, as:T*. null(as)

Thm* null(nil)

pi2 Def 2of(t) == t.2

Thm* A:Type, B:(AType), p:a:AB(a). 2of(p) B(1of(p))

pi1 Def 1of(t) == t.1

Thm* A:Type, B:(AType), p:a:AB(a). 1of(p) A

About:
!abstractionspreadalluniversefunctionproductmember
list_indbtruebfalselistboolniltoken
impliesnatural_numberproprecursive_def_noticeifthenelseapplycons
andtruefalseassert