diff --git a/src/parsing/dkLexer.mll b/src/parsing/dkLexer.mll index d22bf02a2..948dae01e 100644 --- a/src/parsing/dkLexer.mll +++ b/src/parsing/dkLexer.mll @@ -13,8 +13,9 @@ } let space = [' ' '\t' '\r'] +let letter = ['a'-'z' 'A'-'Z' '0'-'9' '_' '!' '?' '\'' '+' '*' '~' '&' '^' '@' '=' '$' '%' '/' '<' '|' '-' '\\' '>'] +let ident = letter+ let mident = ['a'-'z' 'A'-'Z' '0'-'9' '_']+ -let ident = ['a'-'z' 'A'-'Z' '0'-'9' '_' '!' '?']['a'-'z' 'A'-'Z' '0'-'9' '_' '!' '?' '\'' ]* rule token = parse | space { token lexbuf } diff --git a/tests/OK/FO.dk b/tests/OK/FO.dk index bcd3fa344..8753d0ae7 100644 --- a/tests/OK/FO.dk +++ b/tests/OK/FO.dk @@ -60,19 +60,19 @@ def conj_elim_2 : A:Prop -> B:Prop -> prf (conj A B) -> prf B := A:Prop => B:Prop => p:prf (conj A B) => p B (_:prf A => b:prf B => b). (; Universal quantificator ;) -def forall_intro: P:(Term->Prop) -> (t:Term -> prf (P t)) -> prf (forall P) -:= P:(Term->Prop) => p:(t:Term -> prf (P t)) => p. +def forall_intro: P:(Term -> Prop) -> (t:Term -> prf (P t)) -> prf (forall P) +:= P:(Term -> Prop) => p:(t:Term -> prf (P t)) => p. -def forall_elim: P:(Term->Prop) -> t:Term -> prf (forall P) -> prf (P t) -:= P:(Term->Prop) => t:Term => p:prf (forall P) => p t. +def forall_elim: P:(Term -> Prop) -> t:Term -> prf (forall P) -> prf (P t) +:= P:(Term -> Prop) => t:Term => p:prf (forall P) => p t. (; Existential quantificator ;) -def exists_intro: P:(Term->Prop) -> t:Term -> prf (P t) -> prf (exists P) +def exists_intro: P:(Term -> Prop) -> t:Term -> prf (P t) -> prf (exists P) := P:(Term -> Prop) => t:Term => p:prf (P t) => A:Prop => f:(x:Term -> prf (P x) -> prf A) => f t p. -def exists_elim: P:(Term->Prop) -> Q:Prop -> prf (exists P) -> prf (forall (x => imp (P x) Q)) -> prf Q -:= P:(Term->Prop) => Q:Prop => p1:prf (exists P) => p2:prf (forall (x => imp (P x) Q)) +def exists_elim: P:(Term -> Prop) -> Q:Prop -> prf (exists P) -> prf (forall (x => imp (P x) Q)) -> prf Q +:= P:(Term -> Prop) => Q:Prop => p1:prf (exists P) => p2:prf (forall (x => imp (P x) Q)) => p1 Q p2. (; Equality ;) diff --git a/tests/OK/domainfree.dk b/tests/OK/domainfree.dk index 82cd9f78c..633f38e13 100644 --- a/tests/OK/domainfree.dk +++ b/tests/OK/domainfree.dk @@ -1,3 +1,3 @@ A:Type. -F:(A->A)->A. -def f := F (x=>x). +F:(A -> A) -> A. +def f := F (x => x). diff --git a/tests/OK/dotpat.dk b/tests/OK/dotpat.dk index 873b228d1..f37cde2e9 100644 --- a/tests/OK/dotpat.dk +++ b/tests/OK/dotpat.dk @@ -1,13 +1,13 @@ N: Type. Z: N. -S: N->N. +S: N -> N. -def plus: N->N->N. +def plus: N -> N -> N. [y] plus Z y --> y [x,y] plus (S x) y --> S (plus x y). -V: N->Type. +V: N -> Type. Nil: V Z. Con: n:N -> V n -> N -> V (S n). diff --git a/tests/OK/emptySet.dk b/tests/OK/emptySet.dk index ffa82a2e8..07bfdd11b 100644 --- a/tests/OK/emptySet.dk +++ b/tests/OK/emptySet.dk @@ -1,10 +1,10 @@ Set:Type. Prop:Type. -def prf:Prop->Type. +def prf:Prop -> Type. -forall:(Set->Prop)->Prop. -imp:Prop->Prop->Prop. +forall:(Set -> Prop) -> Prop. +imp:Prop -> Prop -> Prop. [f] prf (forall f) --> x:Set -> prf (f x) [A,B] prf (imp A B) --> prf A -> prf B. diff --git a/tests/OK/firstOrder.dk b/tests/OK/firstOrder.dk index 0340de813..6915bd03e 100644 --- a/tests/OK/firstOrder.dk +++ b/tests/OK/firstOrder.dk @@ -43,6 +43,6 @@ DeMorgan2 : A:Prop -> B:Prop -> prf (imp (or A B) (not (and (not A) (not B)))). U:Type. -forall : (U->Prop) -> Prop. -forall_intro : P:(U->Prop) -> (x:U -> prf (P x)) -> prf (forall P). -forall_elim : P:(U->Prop) -> prf (forall P) -> x:U -> prf (P x). +forall : (U -> Prop) -> Prop. +forall_intro : P:(U -> Prop) -> (x:U -> prf (P x)) -> prf (forall P). +forall_elim : P:(U -> Prop) -> prf (forall P) -> x:U -> prf (P x). diff --git a/tests/OK/firstOrder_v2.dk b/tests/OK/firstOrder_v2.dk index 9032cda77..ec51d488f 100644 --- a/tests/OK/firstOrder_v2.dk +++ b/tests/OK/firstOrder_v2.dk @@ -58,16 +58,16 @@ def and_elim_2 : A:Prop -> B:Prop -> prf (and A B) -> prf B lem B B (q:prf B => q) (q:prf (not B) => false_elim B (p (x:prf A => q))). (; Universal quantificator ;) -def forall_intro: P:(Term->Prop) -> (t:Term -> prf (P t)) -> prf (forall P) -:= P:(Term->Prop) => p:(t:Term -> prf (P t)) => p. +def forall_intro: P:(Term -> Prop) -> (t:Term -> prf (P t)) -> prf (forall P) +:= P:(Term -> Prop) => p:(t:Term -> prf (P t)) => p. -def forall_elim: P:(Term->Prop) -> t:Term -> p:prf (forall P) -> prf (P t) -:= P:(Term->Prop) => t:Term => p:prf (forall P) => p t. +def forall_elim: P:(Term -> Prop) -> t:Term -> p:prf (forall P) -> prf (P t) +:= P:(Term -> Prop) => t:Term => p:prf (forall P) => p t. (; Existential quantificator ;) -def exists_intro: P:(Term->Prop) -> t:Term -> prf (P t) -> prf (exists P) +def exists_intro: P:(Term -> Prop) -> t:Term -> prf (P t) -> prf (exists P) := P:(Term -> Prop) => t:Term => p:prf (P t) => q:prf (forall (u:Term => not (P u))) => q t p. e: (Term -> Prop) -> Term. (;Hilbert operator;) -exists_elim: P:(Term->Prop) -> prf (exists P) -> prf (P (e P)). +exists_elim: P:(Term -> Prop) -> prf (exists P) -> prf (P (e P)). diff --git a/tests/OK/nonlin.dk b/tests/OK/nonlin.dk index c3a3fd199..04f3817d0 100644 --- a/tests/OK/nonlin.dk +++ b/tests/OK/nonlin.dk @@ -8,7 +8,7 @@ S : Nat -> Nat. def plus : Nat -> Nat -> Nat. [n] plus 0 n --> n [m, n] plus (S m) n --> S (plus m n) -[n] plus n 0--> n +[n] plus n 0 --> n [m, n] plus m (S n) --> S (plus m n). def eq : (Nat -> Nat) -> (Nat -> Nat) -> Nat. diff --git a/tests/OK/surjective.dk b/tests/OK/surjective.dk index ca1908a8b..7ce4505b2 100644 --- a/tests/OK/surjective.dk +++ b/tests/OK/surjective.dk @@ -1,8 +1,8 @@ T:Type. Pairs:Type. -def p1:Pairs->T. -def p2:Pairs->T. -def mk:T->T->Pairs. +def p1:Pairs -> T. +def p2:Pairs -> T. +def mk:T -> T -> Pairs. [a] p1 (mk a _) --> a. [b] p2 (mk _ b) --> b. diff --git a/tests/OK/tuto.dk b/tests/OK/tuto.dk index ee758f75c..1c9000d70 100644 --- a/tests/OK/tuto.dk +++ b/tests/OK/tuto.dk @@ -132,7 +132,7 @@ def pred : Nat -> Nat. def plus : Nat -> Nat -> Nat. [n] plus 0 n --> n [m, n] plus (S m) n --> S (plus m n) -[n] plus n 0--> n +[n] plus n 0 --> n [m, n] plus m (S n) --> S (plus m n). def plus_rec_term : Nat -> Nat -> Nat.