nfa 1 Sections AutomataTheory Doc

nd_accept_list Def NDA(l) == q:St. NDA(l)q & (F(NDA)(q))

Thm* Alph,St:Type, NDA:NDA(Alph;St), l:Alph*. NDA(l) Prop

nd_compute_list Def NDA(l)q == if null(l) q = I(NDA) St else t:St. NDA(tl(l))t & NDA(t,hd(l),q) fi (recursive)

Thm* Alph,St:Type, NDA:NDA(Alph;St), l:Alph*, q:St. NDA(l)q Prop

NDA_act Def n == 1of(n)

Thm* Alph,States:Type, n:NDA(Alph;States). n StatesAlphStatesProp

NDA_fin Def F(n) == 2of(2of(n))

Thm* Alph,States:Type, n:NDA(Alph;States). F(n) States

NDA_init Def I(n) == 1of(2of(n))

Thm* Alph,States:Type, n:NDA(Alph;States). I(n) States

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

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

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

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

decidable Def Dec(P) == P P

Thm* A:Prop. Dec(A) Prop

finite Def Fin(s) == n:, f:(ns). Bij(n; s; f)

Thm* T:Type. Fin(T) Prop

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

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

nd_automata Def NDA(Alph;States) == (StatesAlphStatesProp)States(States)

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

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

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

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

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

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

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

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

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*

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

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

Thm* null(nil)

int_seg Def {i..j} == {k:| i k < j }

Thm* m,n:. {m..n} Type

nat Def == {i:| 0i }

Thm* Type

lelt Def i j < k == ij & j < k

le Def AB == B < A

Thm* i,j:. ij Prop

not Def A == A False

Thm* A:Prop. (A) Prop

biject Def Bij(A; B; f) == Inj(A; B; f) & Surj(A; B; f)

Thm* A,B:Type, f:(AB). Bij(A; B; f) Prop

rev_implies Def P Q == Q P

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

surject Def Surj(A; B; f) == b:B. a:A. f(a) = b

Thm* A,B:Type, f:(AB). Surj(A; B; f) Prop

inject Def Inj(A; B; f) == a1,a2:A. f(a1) = f(a2) B a1 = a2

Thm* A,B:Type, f:(AB). Inj(A; B; f) Prop

About:
!abstractionallimpliesequalapplyuniversefunctionmember
propexistsandfalseless_thanintsetnatural_number
list_indbtruebfalselistboolniltokenspread
productorrecursive_def_noticeifthenelsetrueassert