myhill nerode Sections AutomataTheory Doc

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

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

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

listify Def listify(f; m; n) == if nm nil else f(m).listify(f; m+1; n) fi (recursive)

Thm* T:Type, m,n:, f:({m..n}T). listify(f; m; n) T*

mem_f Def mem_f(T;a;bs) == Case of bs; nil False ; b.bs' b = a T mem_f(T;a;bs') (recursive)

Thm* T:Type, a:T, bs:T*. mem_f(T;a;bs) Prop

nat Def == {i:| 0i }

Thm* Type

select Def l[i] == hd(nth_tl(i;l))

Thm* A:Type, l:A*, n:. 0n n < ||l|| l[n] A

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

nth_tl Def nth_tl(n;as) == if n0 as else nth_tl(n-1;tl(as)) fi (recursive)

Thm* A:Type, as:A*, i:. nth_tl(i;as) A*

le_int Def ij == j < i

Thm* i,j:. ij

le Def AB == B < A

Thm* i,j:. ij Prop

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

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

lt_int Def i < j == if i < j true ; false fi

Thm* i,j:. i < j

bnot Def b == if b false else true fi

Thm* b:. b

not Def A == A False

Thm* A:Prop. (A) Prop

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

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

About:
!abstractionlist_indnilalluniverselistmemberimplies
falsepropifthenelsebfalsebtrueboollessint
tokennatural_numberless_thanrecursive_def_noticesubtractandsetor
equalconsapplyaddfunction