Zulip Chat Archive
Stream: iris-lean
Topic: Porting iris-tutorial
suhr (Jul 13 2025 at 12:55):
In https://github.com/suhr/iris-tutorial I started to port iris-tutorial to Lean. Here's some problems met so far:
- You can't write
⊢ P -∗ (P -∗ Q) -∗ Qas simplyP -∗ (P -∗ Q) -∗ Qin iris-lean - The tutorial needs
iapplybut there's no such tactic in iris-lean yet
Mario Carneiro (Jul 16 2025 at 06:52):
suhr said:
- You can't write
⊢ P -∗ (P -∗ Q) -∗ Qas simplyP -∗ (P -∗ Q) -∗ Qin iris-lean
I think this is not likely to get better. You could get iprop(P -∗ (P -∗ Q) -∗ Q) to work but that's not really better.
suhr (Oct 11 2025 at 12:57):
I tired of waiting for https://github.com/leanprover-community/iris-lean/pull/80 to be merged, so I filled the rest of Basics.lean using a fork of the repo.
There are three unproven lemmas remaining, which use ⊣⊢. In the tutorial, bi-entails is split with iSplit, but in iris-lean isplit does not work for ⊣⊢.
suhr (Oct 23 2025 at 13:49):
But constructor works fine for ⊣⊢
suhr (Oct 23 2025 at 14:31):
Now I'm trying to port pure.v, but theorem eq_elm {A} (P : A → iProp σ) (x y : A) : (⌜x = y⌝ : IProp σ) -∗ P x -∗ P y := sorry gives me the following error: error: IrisTutorial/Pure.lean:39:49: elaboration function for 'Iris.BI.BIBase.«term_-∗_»' has not been implemented.
Markus de Medeiros (Oct 24 2025 at 14:11):
I think you should put your main goal a ⊢. Enclosing it in iprop(...) might also work.
suhr (Oct 24 2025 at 14:26):
Huh, I forgot about the ⊢ thing again. Thanks!
suhr (Oct 24 2025 at 15:02):
Now both basics.v and pure.v are ported, and the rest of tutorial requires heaplang.
Last updated: Dec 20 2025 at 21:32 UTC