mirror of
https://github.com/achlipala/frap.git
synced 2024-11-28 07:16:20 +00:00
Update for Coq 8.9
This commit is contained in:
parent
e92a697e33
commit
e032ab4240
7 changed files with 23 additions and 23 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -12,7 +12,7 @@
|
|||
Makefile.coq
|
||||
Makefile.coq.conf
|
||||
*.glob
|
||||
*.v.d
|
||||
*.d
|
||||
*.vo
|
||||
frap.tgz
|
||||
.coq-native
|
||||
|
|
|
@ -886,7 +886,7 @@ Module DeeperWithFail.
|
|||
| Stepped (h : heap) (c : cmd result)
|
||||
| Failed.
|
||||
|
||||
Implicit Arguments Failed [result].
|
||||
Arguments Failed {result}.
|
||||
|
||||
Fixpoint step {result} (c : cmd result) (h : heap) : stepResult result :=
|
||||
match c with
|
||||
|
|
|
@ -731,7 +731,7 @@ Module DeeperWithFail.
|
|||
| Stepped (h : heap) (c : cmd result)
|
||||
| Failed.
|
||||
|
||||
Implicit Arguments Failed [result].
|
||||
Arguments Failed {result}.
|
||||
|
||||
Fixpoint step {result} (c : cmd result) (h : heap) : stepResult result :=
|
||||
match c with
|
||||
|
|
|
@ -1217,7 +1217,7 @@ Section split.
|
|||
Defined.
|
||||
End split.
|
||||
|
||||
Implicit Arguments split [P1 P2].
|
||||
Arguments split {P1 P2}.
|
||||
|
||||
(* And now, a few more boring lemmas. Rejoin at "BOREDOM VANQUISHED", if you
|
||||
* like. *)
|
||||
|
|
|
@ -599,7 +599,7 @@ Section split.
|
|||
Defined.
|
||||
End split.
|
||||
|
||||
Implicit Arguments split [P1 P2].
|
||||
Arguments split {P1 P2}.
|
||||
|
||||
(* And now, a few more boring lemmas. Rejoin at "BOREDOM VANQUISHED", if you
|
||||
* like. *)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Require Import Eqdep String Arith Omega Program Sets Relations Map Var Invariant Bool ModelCheck.
|
||||
Export String Arith Sets Relations Map Var Invariant Bool ModelCheck.
|
||||
Export Ascii String Arith Sets Relations Map Var Invariant Bool ModelCheck.
|
||||
Require Import List.
|
||||
Export List ListNotations.
|
||||
Open Scope string_scope.
|
||||
|
|
|
@ -776,25 +776,25 @@ Inductive boundRunningTime : cmd -> nat -> Prop :=
|
|||
|
||||
(* Perhaps surprisingly, there exist commands that have no finite time bounds!
|
||||
* Mixed-embedding languages often have these counterintuitive properties. *)
|
||||
Fixpoint scribbly (n : nat) : cmd :=
|
||||
match n with
|
||||
| O => Return 0
|
||||
| S n' => _ <- Write n' 0; scribbly n'
|
||||
end.
|
||||
|
||||
Lemma scribbly_time : forall n m,
|
||||
boundRunningTime (scribbly n) m
|
||||
-> m >= n.
|
||||
Proof.
|
||||
induct n; invert 1; auto.
|
||||
invert H2.
|
||||
specialize (H4 n0).
|
||||
apply IHn in H4.
|
||||
linear_arithmetic.
|
||||
Qed.
|
||||
|
||||
Theorem boundRunningTime_not_total : exists c, forall n, ~boundRunningTime c n.
|
||||
Proof.
|
||||
Fixpoint scribbly (n : nat) : cmd :=
|
||||
match n with
|
||||
| O => Return 0
|
||||
| S n' => _ <- Write n' 0; scribbly n'
|
||||
end.
|
||||
|
||||
Lemma scribbly_time : forall n m,
|
||||
boundRunningTime (scribbly n) m
|
||||
-> m >= n.
|
||||
Proof.
|
||||
induct n; invert 1; auto.
|
||||
invert H2.
|
||||
specialize (H4 n0).
|
||||
apply IHn in H4.
|
||||
linear_arithmetic.
|
||||
Qed.
|
||||
|
||||
exists (n <- Read 0; scribbly n); propositional.
|
||||
invert H.
|
||||
specialize (H4 (S n2)).
|
||||
|
|
Loading…
Reference in a new issue