Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.60 KB | None | 0 0
  1. Require Import Coq.Strings.String.
  2. Require Import Coq.Strings.Ascii.
  3.  
  4. Fixpoint denote (xs : list ascii) : string :=
  5. match xs with
  6. | nil => EmptyString
  7. | cons x xs => String x (denote xs)
  8. end.
  9.  
  10. Fixpoint reify (xs : string) : list ascii :=
  11. match xs with
  12. | EmptyString => nil
  13. | String x xs => cons x (reify xs)
  14. end.
  15.  
  16. Lemma denote_reify : forall x, denote (reify x) = x.
  17. Admitted.
  18.  
  19. Lemma denote_sound :
  20. forall (P : string -> Prop) x,
  21. P (denote (reify x)) <-> P x.
  22. Proof.
  23. intros.
  24. induction x; simpl; split; intros; auto.
  25. rewrite denote_reify in H; auto.
  26. rewrite denote_reify; auto.
  27. Qed.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement