I've been working with the Coq proof assistant for the past few weeks, but I encountered something special today. I'm working my way through the exercises of the "Types and programming languages" book by Benjamin Pierce. In one of these exercises I have to proof for some self-made programming language (Imp in Pierce's exercises) that a specific hoare triplet is valid. I've almost finished this proof, but I'm stuck at a point where I have to proof that the following is valid st X <= st Y
where st is some state, and st X returns a value stored at Id X in the state.
My hypothesis state the following:
st : state
H : (st X <=? st Y) = true
My question now is what the ? means in (st X <=? st Y) = true
and how I can use this theorem to prove the goal (which seems almost the same to as H?)?
st X
andst Y
are natural numbers, you can simplify your question into: What does?
mean in<=?
and how do I proveforall m n, (m <=? n) = true -> m <= n.
? – Anton Trunov