Skip to content

Instantly share code, notes, and snippets.

@Tagussan
Created June 22, 2014 14:17
Show Gist options
  • Save Tagussan/00bdfb6a48068c0154e6 to your computer and use it in GitHub Desktop.
Save Tagussan/00bdfb6a48068c0154e6 to your computer and use it in GitHub Desktop.
Ltac split_all := try _split_all
with _split_all :=
match goal with
| |- (_ /\ _) => try (repeat split) || split_all
end.
(* 以下は動作確認用 *)
Lemma bar :
forall P Q R S : Prop,
R -> Q -> P -> S -> (P /\ R) /\ (S /\ Q).
Proof.
intros P Q R S H0 H1 H2 H3.
split_all.
- assumption.
- assumption.
- assumption.
- assumption.
Qed.
Lemma baz :
forall P Q R S T : Prop,
R -> Q -> P -> T -> S -> P /\ Q /\ R /\ S /\ T.
Proof.
intros P Q R S T H0 H1 H2 H3 H4.
split_all.
- assumption.
- assumption.
- assumption.
- assumption.
- assumption.
Qed.
Lemma quux :
forall P Q : Type, P -> Q -> P * Q.
Proof.
intros P Q H0 H1.
split_all.
split.
- assumption.
- assumption.
Qed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment