Skip to content

Instantly share code, notes, and snippets.

@AyaMorisawa
Created November 3, 2016 14:54
Show Gist options
  • Save AyaMorisawa/a2b15924488ae64d1acae57761a9add5 to your computer and use it in GitHub Desktop.
Save AyaMorisawa/a2b15924488ae64d1acae57761a9add5 to your computer and use it in GitHub Desktop.
Require Import Arith.Mult.
Definition is_even (n : nat) : Prop :=
exists (k : nat), n = 2 * k.
Theorem even_plus_even_is_even :
forall (n m : nat), is_even n /\ is_even m -> is_even (n + m).
Proof.
intro n.
intro m.
intro H0.
destruct H0 as [H1 H2].
destruct H1 as [x0 H3].
destruct H2 as [x1 H4].
rewrite H3.
rewrite H4.
pose proof mult_plus_distr_l as H5.
symmetry in H5.
rewrite H5.
exists (x0 + x1).
reflexivity.
Qed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment