Section programming_3.
Variable A B C : Set.
simple induction 1; try trivial.
Defined.
simple induction 1; try trivial.
Defined.
simple induction 1; try trivial.
Defined.
End programming_3.
Notation Fst_3 := (fst_3 _ _ _) (only parsing).
Notation Snd_3 := (snd_3 _ _ _) (only parsing).
Notation Thd_3 := (thd_3 _ _ _) (only parsing).
Notation Triplet := (triplet _ _ _) (only parsing).
(************************************************************************)
intros.
pattern c in |- *; elim c; auto.
Qed.
(************************************************************************)
Definition ifProp (C : Type) (b : bool) (x y : C) : C :=
match b return C with
| true => x
| false => y
end.

Lemma ifProp_or : forall (b : bool) (P Q : Prop), ifProp Prop b P Q -> P \/ Q.