FStar icon indicating copy to clipboard operation
FStar copied to clipboard

Squash confusion in calc proofs

Open mtzguido opened this issue 1 year ago • 0 comments

This works just fine, even if the lemma works on squashes (or on just pp/qq)

assume val pp : prop
assume val qq : prop
assume val ii : unit -> Lemma (requires squash pp) (ensures squash qq)

let test () =
  calc (==>) {
    pp;
    ==> { ii () }
    qq;
  }

This fails:

assume val pp : prop
assume val qq : prop
assume val ii : unit -> Lemma (requires squash pp) (ensures squash qq)

let test () =
  calc (==>) {
    squash pp;
    ==> { ii () }
    squash qq;
  }

mtzguido avatar Dec 19 '23 06:12 mtzguido