Self-evaluation 1
- Files:
Exercise 1
In the code below, write down the goal at the annotated points. Goals have the following shape.
h1 : P1
h2 : P2
…
-------------
G
You can ignore the admit below.
P, Q: PropP \/ Q -> Q \/ PP, Q: PropP \/ Q -> Q \/ PP, Q: Prop
h: P \/ QQ \/ PP, Q: Prop
h: PQ \/ PP, Q: Prop
h: QQ \/ PP, Q: Prop
h: PQ \/ P(* POINT 1 *) Abort.P, Q: Prop
h: PQP, Q: Prop~ ~ P -> (P -> ~ Q) -> ~ QP, Q: Prop~ ~ P -> (P -> ~ Q) -> ~ QP, Q: Prop
h1: ~ ~ P
h2: P -> ~ Q
h3: QFalseP, Q: Prop
h1: ~ ~ P
h2: P -> ~ Q
h3: Q~ P(* POINT 2 *) Abort.P, Q: Prop
h1: ~ ~ P
h2: P -> ~ Q
h3: Q
h4: PFalsen: natn = 42n: natn = 420 = 42n': nat
IH: n' = 42S n' = 42admit.0 = 42Abort.n': nat
IH: n' = 42S n' = 42
Exercise 2
In the code above, what tactics would solve test2?
Exercise 3
Prove the following lemma without using inversion or discriminate.
true <> falseAdmitted.true <> false