Origin Sections AutomataTheory Doc

grammar_1

Nuprl Section: grammar_1

Selected Objects
deflist_pT List == {l:(T*)| ||l|| > 0 }
deflength_p||l|| == ||l||
THMvoid_unionl:Void+T. l V+T
THMvoid_union_listl:(Void+T)*. l (V+T)*
THMvoid_union_langL:LangOver(V+T). L LangOver(Void+T)
defgrammarGrammar(V;T) == ((V+T List)(V+T)*)*V
defg_prodg.prod == 1of(g)
defg_initg.init == 2of(g)
defproduce(l1,l2) == i:||G.prod||. < l1,l2 > = G.prod[i] (V+T List)(V+T)*
defdirectly_derive(l,m) == l0:(V+T)*, l1:(V+T List), l2,m1:(V+T)*. l = (l0 @ l1 @ l2) & (l1 m1) & m = (l0 @ m1 @ l2)
defderive(l,m) == a:((V+T)* List). l = a[0] (V+T)* & (i:(||a||-1). a[i] a[(i+1)]) & a[(||a||-1)] = m (V+T)*
THMderive_reflG:Grammar(V;T), l:(V+T)*. l l
THMderive_transG:Grammar(V;T), l,m,n:(V+T)*. (l m) (m n) (l n)
defstartS == inl(G.init)
defg_langL(G)(l) == [S] l
defg_eqG1 = G2 == L(G1) = L(G2)
defcon_sen_gConSenG(G) == i:||G.prod||. ||1of(G.prod[i])||||2of(G.prod[i])||
defcon_free_gConFreeG(G) == i:||G.prod||. (a:V. [inl(a)] = 1of(G.prod[i]) (V+T List)) & ||2of(G.prod[i])|| > 0
defreg_gRegG(G) == i:||G.prod||. A,B:V, a:T. G.prod[i] = < [inl(A)],[inr(a); inl(B)] > (V+T List)(V+T)* G.prod[i] = < [inl(A)],[inr(a)] > (V+T List)(V+T)*