Skip to content

Stop `iAssumption` from unifying evar premises with `False`

Janno requested to merge janno/defuse-iAssumption into master

Opening this so that I don't forget about it. The following example (thanks @Blaisorblade) should show the current, unwanted behavior so I should probably add this as a test case:

Lemma foo {M} :   (P : uPred M), P -∗ ( (x : nat),  x = x )  P.
Proof.
  iExists ?[P]. (* [iExists _.] also works. *)
  iIntros "P". iSplit. 
  iIntros (x).
  Fail iApply "P".
  iAssumption.
  Show.
  (*
   M : ucmraT
  ============================
  "P" : False
  --------------------------------------∗
  False
  *)
Edited by Janno

Merge request reports