Skip to content

Commit

Permalink
run without run form
Browse files Browse the repository at this point in the history
  • Loading branch information
namin committed Mar 5, 2019
1 parent b63bcae commit 2a7c323
Showing 1 changed file with 105 additions and 1 deletion.
106 changes: 105 additions & 1 deletion dev-coq/base.v
Expand Up @@ -3025,7 +3025,111 @@ Proof.
unfold n_exp. rewrite Heqenv0. simpl. reflexivity.
unfold n_exp. rewrite Heqenv0. simpl. reflexivity.

- admit.
- simpl in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
simpl1 H p0 Heqp0.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Heqenv0 in Henv1. rewrite Heqenv0 in Henv2.
simpl in Heqenv0.
erewrite ev_var in H; [idtac | solve [unfold n_exp; rewrite Heqenv0; simpl; reflexivity]].
Arguments string_dec: simpl never.
simpl in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
erewrite ev_var in H; [idtac | solve [unfold n_exp; rewrite Heqenv0; simpl; reflexivity]].
simpl1 H p0 Heqp0.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
simpl1 H p0 Heqp0.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
erewrite ev_var in H; [idtac | solve [unfold n_exp; rewrite Heqenv0; simpl; reflexivity]].
simpl2 H p0 Heqp0.
assert (forall fuel, ev s (S (S fuel)) env0 (EOp1 OCar (EVar n_exp)) = (s, VStr "run")) as Hcar. {
intros. simpl. unfold ev. unfold n_exp. rewrite Heqenv0. simpl. reflexivity.
}
remember (if string_dec "quote" "run" then 1 else 0) as b.
vm_compute in Heqb. rewrite Heqb in H.
assert (forall fuel op, op <> "run" ->
ev s (S (S (S fuel))) env0 (EOp2 OEq (EStr op) (EOp1 OCar (EVar n_exp))) = (s, VNat 0)) as Hno. {
intros fuel0 op Hnotop.
remember (S (S fuel0)) as fuel02.
simpl.
rewrite Heqfuel02.
remember (S fuel0) as fuel01.
rewrite ev_str with (t:=op).
rewrite Heqfuel01.
rewrite (Hcar fuel0).
remember (string_dec op "run") as cmp.
case_eq cmp.
intros. congruence. intros ? Hcmp.
auto.
}
assert (forall fuel op e1 e2, op <> "run" ->
ev s (S (S (S (S fuel)))) env0 (EIf (EOp2 OEq (EStr op) (EOp1 OCar (EVar n_exp))) e1 e2) = ev s (S (S (S fuel))) env0 e2) as Helse. {
intros fuel0 op e1 e2 Hnotop.
remember (S (S (S fuel0))) as fuel03.
simpl.
rewrite Heqfuel03.
remember (S (S fuel0)) as fuel02.
simpl.
rewrite Heqfuel02.
remember (S fuel0) as fuel01.
rewrite ev_str with (t:=op).
rewrite Heqfuel01.
rewrite (Hcar fuel0).
remember (string_dec op "run") as cmp.
case_eq cmp.
intros. congruence. intros ? Hcmp.
auto.
}
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
destruct fuel.
simpl in H. inversion H. subst. left. repeat eexists.
rewrite Helse in H.
simpl in H. inversion H. subst. left. repeat eexists.
congruence. congruence. congruence. congruence. congruence. congruence. congruence. congruence. congruence. congruence. congruence. congruence.
congruence. congruence.
- admit.
- admit.
- admit.
Expand Down

0 comments on commit 2a7c323

Please sign in to comment.