Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions Iris/Iris/BI/BIBase.lean
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,7 @@ delab_rule intuitionistically
syntax:max "▷^[" term:45 "]" term:40 : term

@[rocq_alias bi_laterN]
def laterN [BIBase PROP] (n : Nat) (P : PROP) : PROP :=
match n with | .zero => P | .succ n' => later <| laterN n' P
def laterN [BIBase PROP] (n : Nat) (P : PROP) : PROP := n.repeat later P

macro_rules
| `(iprop(▷^[$n] $P)) => ``(laterN $n iprop($P))
Expand Down
8 changes: 6 additions & 2 deletions Iris/Iris/BI/DerivedLawsLater.lean
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,9 @@ instance laterN_persistent (n : Nat) (P : PROP) [Persistent P] :
Persistent iprop(▷^[n] P) := by
induction n with
| zero => assumption
| succ n _ => exact later_persistent
| succ n _ =>
dsimp only [BIBase.laterN, Nat.repeat] at *
exact later_persistent

instance instPersistentLaterIf [BI PROP] (P : PROP) [Persistent P] (p : Bool) :
Persistent iprop(▷?p P) := by
Expand All @@ -408,7 +410,9 @@ instance laterN_absorbing (n : Nat) (P : PROP) [Absorbing P] :
Absorbing iprop(▷^[n] P) := by
induction n with
| zero => assumption
| succ n _ => exact later_absorbing
| succ n _ =>
dsimp only [BIBase.laterN, Nat.repeat] at *
exact later_absorbing

/-! ## LaterN as a monoid homomorphism -/

Expand Down
2 changes: 1 addition & 1 deletion Iris/Iris/Instances/Lib/FUpd.lean
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ theorem lc_fupd_add_laterN (n : Nat) {E : CoPset} {P : IProp GF} :
induction n generalizing P with
| zero =>
iintro _ H
simp [BIBase.laterN]
dsimp only [BIBase.laterN, Nat.repeat]
iexact H
| succ n IH =>
iintro Hf Hupd
Expand Down