Home |
Github |
split
is primarily used to break a single goal of the form A /\ B
into two new goals A
and B
.
You will often notice that split
seems to solve some of the subgoals that it generates. This is because split
is just shorthand for constructor 1
(see the constructor
tactic).
Looking at the definition of /\
(or and
):
Inductive and (A B : Prop) : Prop := conj : A -> B -> A /\ B.
we can see that and
has a single constructor called conj
- so constructor 1
simply reduces to apply conj
, which would give us goals A
and B
due to the impliciations that it carries.
split.
Before
=========================
1/1
True /\ False
split.
After
=========================
1/2
True
=========================
2/2
False