Buenas, este ejercicio lo planteé de la siguiente forma:
Lemma ej53c : forall (mem: Memoria) (e: BoolExpr) (w1 w2: Valor), BEval mem e w1 /\ BEval mem e w2 -> w1 = w2.
Para probarlo hice intros y luego inversion en H0. Luego, coq me exige una prueba para cada posible forma de e, o sea para e = varExp, e = boolExp, etc. El problema es que no he podido realizar la prueba para e = And e1 e2.
Llego a lo siguiente:
H : BEval mem e w1 /\ BEval mem e w2
H0 : BEval mem e w1
H1 : BEval mem e w2
e1, e2 : BoolExpr
H2 : BEval mem e1 false
H3 : And e1 e2 = e
H4 : false = w1
______________________________________(1/5)
false = w2
Alguna sugerencia de como seguir?
Gracias.