Equiv_Jの練習問題 WHILE_true


WHILE_true.v
Theorem WHILE_true: forall b c,
     bequiv b BTrue  ->
     cequiv
       (WHILE b DO c END)
       (WHILE BTrue DO SKIP END).
Proof.
 move => b c H.
 unfold cequiv => st st'.
 split => HH.
  - destruct(WHILE_true_nonterm b c st st' H). by assumption.

  - destruct(WHILE_true_nonterm BTrue SKIP st st').
    - unfold bequiv. by reflexivity.

    - by assumption.
Qed.