Bool型
From Stdlib Require Import Logic.PropExtensionality. Definition bool_to_prop (b : bool) : Prop := if b then True else False.
以下の補題は intro. inversion H. だけでも証明できるが、それが本質的に行なっていることは以下の証明と同じである。
true <> falsetrue <> falseH: true = falseFalseH: true = falsebool_to_prop falseH: true = falsebool_to_prop truetrivial. Qed.H: true = falseTrue
bool_to_prop は以下のようにも定義できる。
Definition is_true (b : bool) : Prop := b = true.b: boolbool_to_prop b = is_true bb: boolbool_to_prop b = is_true bb: boolbool_to_prop b <-> is_true bTrue <-> is_true trueFalse <-> is_true falseTrue <-> is_true trueTrue -> is_true trueis_true true -> Truereflexivity.True -> is_true truetrivial.is_true true -> TrueFalse <-> is_true falseFalse -> is_true falseis_true false -> Falsecontradiction.False -> is_true falseis_true false -> Falsefalse = true -> FalseH: false = trueFalseH: false = truetrue = falseassumption. Qed.H: false = truefalse = true