Skip to content

Instantly share code, notes, and snippets.

@caotic123
Last active June 30, 2022 06:37
Show Gist options
  • Save caotic123/51d20be35208bd5ffff5fcad2f10e6ce to your computer and use it in GitHub Desktop.
Save caotic123/51d20be35208bd5ffff5fcad2f10e6ce to your computer and use it in GitHub Desktop.
Quite easy proof code
From Coq Require Import ssreflect ssrfun ssrbool.
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.
Require Import Coq.Init.Datatypes.
Definition Iso A B := exists (f : A -> B) (g : B -> A),
forall x, f (g x) = x /\ forall y, g (f y) = y.
Theorem try : Iso True (option False).
unfold Iso.
exists (fun x => None).
exists (fun x => match x with
|Some boom => match boom with end
|None => I
end).
case => //=.
apply : conj => //.
by case.
Qed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment