diff --git a/prover/drivers/coq-driver.md b/prover/drivers/coq-driver.md index 13a19fa01..ffba1500f 100644 --- a/prover/drivers/coq-driver.md +++ b/prover/drivers/coq-driver.md @@ -43,9 +43,9 @@ module DRIVER-COQ ( .Bag => symbol CoqIdentToSymbol(ID)(.Sorts) : StringToSort("Term") - axiom \equals(CoqIdentToSymbol(ID), CoqTermToPattern(TERM)) + axiom getFreshGlobalAxiomName() : \equals(CoqIdentToSymbol(ID), CoqTermToPattern(TERM)) ) ... - + // Translate inductive cases rule Inductive ID BINDERs : TERM := .CoqIndCases . @@ -63,7 +63,7 @@ module DRIVER-COQ ( .Bag => symbol CoqIdentToSymbol(IDC)(.Sorts) : StringToSort("Term") - axiom \type(CoqIdentToSymbol(IDC)(.Patterns), CoqTermToPattern(TERMC)) + axiom getFreshGlobalAxiomName() : \type(CoqIdentToSymbol(IDC)(.Patterns), CoqTermToPattern(TERMC)) ) ... diff --git a/prover/lang/coq-lang.md b/prover/lang/coq-lang.md index ba92ca165..f9eeaeb79 100644 --- a/prover/lang/coq-lang.md +++ b/prover/lang/coq-lang.md @@ -38,11 +38,6 @@ module COQ syntax VariableName ::= CoqNameToVariableName(CoqName) [function] rule CoqNameToVariableName(NAME) => StringToVariableName(CoqNameToString(NAME)) - syntax Sorts ::= CoqBindersToSorts(CoqBinders) [function] - rule CoqBindersToSorts(.CoqBinders) => .Sorts - rule CoqBindersToSorts(NAME:CoqName BINDERs) => StringToSort("Term"), CoqBindersToSorts(BINDERs) - rule CoqBindersToSorts((NAMES : TYPE) BINDERs) => CoqNamesToSorts(NAMES) ++Sorts CoqBindersToSorts(BINDERs) - syntax Sorts ::= CoqNamesToSorts(CoqNames) [function] rule CoqNamesToSorts(.CoqNames) => .Sorts rule CoqNamesToSorts(NAME:CoqName NAMEs) => StringToSort("Term"), CoqNamesToSorts(NAMEs) diff --git a/prover/t/coq-tests/Logic.v b/prover/t/coq-tests/Logic.v index 7f886c87d..8a18dcdbe 100644 --- a/prover/t/coq-tests/Logic.v +++ b/prover/t/coq-tests/Logic.v @@ -5,7 +5,7 @@ Inductive False : Prop := . Inductive nat : Prop := Z : nat - | S : nat -> nat . + | S : (forall (x : nat), nat) . Definition not := fun (A: Prop) => (forall (x : A), False) . diff --git a/prover/t/coq-tests/nat_ind.v b/prover/t/coq-tests/nat_ind.v index b127282e6..03111631f 100644 --- a/prover/t/coq-tests/nat_ind.v +++ b/prover/t/coq-tests/nat_ind.v @@ -7,7 +7,7 @@ Inductive nat : Type := Z : nat | S : forall (x : nat), nat . // axiom \type(Z(), nat()) Definition nat_ind := -fun (P : nat -> Prop) (f : P 0) (f0 : forall (n : nat), P n -> P (S n)) => +fun (P : (forall (n : nat), Prop)) (f : P 0) (f0 : forall (n : nat), (forall (x : P n), P (S n))) => fix F (n : nat) := match n with Z => f | S n0 => f0 n0 (F n0)