Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
45e4243
port proof-mode realted laws for new metatheory
volodeyka May 7, 2026
f551ff2
restructure assertion file; generalise things to order
volodeyka May 8, 2026
906b624
add lemmas
volodeyka May 13, 2026
f08d53d
add one more lemma
volodeyka May 13, 2026
1d6cbd5
add `Frame` instance for `Prop`
volodeyka May 13, 2026
7795bbd
change file imports
volodeyka May 13, 2026
35a9e01
adjust syntax for new CompleteLattice proofmode
volodeyka May 13, 2026
7b29906
Update authorship in multiple files; delete idle file
volodeyka May 13, 2026
5ffa28c
move new mvcgen to lean bench folder (for faster iteration)
volodeyka May 14, 2026
609be1d
Refactor proof mode to use new `new_wp_monad` option; introduce `Lean…
volodeyka May 25, 2026
df4ef59
Not sure if we can use the `new_wp_monad` flag in Std
volodeyka May 25, 2026
abe1906
Remove obsolete `Attr.lean` file and introduce `SpecDB.lean` for mana…
volodeyka May 25, 2026
2499820
Remove `FindSpec.lean` and introduce `Spec.lean` for backward rule co…
volodeyka May 25, 2026
2a93f6c
Add Logic module for lattice logic operations and backward rule const…
volodeyka May 25, 2026
3f7b75e
Add Match.lean for backward rule construction in Loom
volodeyka May 25, 2026
7add8af
Refactor Loom tactics for variable introduction and simplification
volodeyka May 25, 2026
4446a80
Add VCGen module for verification condition generation and management
volodeyka May 25, 2026
7ee70b0
Add caching mechanisms for backward rule construction in Loom
volodeyka May 25, 2026
15b4d59
Add Solve module for goal decomposition in Loom
volodeyka May 25, 2026
a7e17e3
Add Loom Tactic Driver and Frontend for VC Generation
volodeyka May 25, 2026
58a6b01
Enable module precompilation in Loom and remove obsolete ShareExt tac…
volodeyka May 25, 2026
7afc7cb
Refactor specifications in Loom tests to use new `@[spec]` attribute
volodeyka May 25, 2026
0e0707f
add support for simp-specs in new mvcgen database
volodeyka May 26, 2026
d02e4cf
add backward rule construction for simp-specs
volodeyka May 26, 2026
e1c674e
upstream simp-spec support in mvcgen tactic
volodeyka May 26, 2026
3ee0e20
add tests for simp-spec
volodeyka May 26, 2026
844ed08
Add WPInfo structure for weakest-precondition applications in Loom
volodeyka May 27, 2026
b46389b
Refactor backward rule construction to utilize WPInfo structure
volodeyka May 27, 2026
51aa057
Refactor backward rule caching to utilize WPInfo structure
volodeyka May 27, 2026
155e6e2
Enhance goal classification in Loom Tactic by introducing `ProgKind` …
volodeyka May 27, 2026
e39e644
fix test
volodeyka May 27, 2026
aa1567d
refactor: state prop_pre_intro/prop_pre_elim with the top lattice ele…
volodeyka May 31, 2026
d42ff5b
feat: add himp_complete_top for top-precondition frame reasoning
volodeyka May 31, 2026
8ed32aa
feat: add wp_econs_nil_rel for nil exception postconditions
volodeyka May 31, 2026
9d74679
refactor: deliver top <= wp from Id.of_wp_run_eq
volodeyka May 31, 2026
252ae20
refactor: bundle loop Invariant into a structure with inv/einv, early…
volodeyka May 31, 2026
77658be
test: register forIn/fold loop and throw specs in loom spec DB
volodeyka May 31, 2026
20b21ff
refactor: extract loom vcgen intro/reduce helpers into Tactic/Utils
volodeyka May 31, 2026
468bf3c
refactor: expand loom vcgen context, intro-rule, and cache types
volodeyka May 31, 2026
aca02c4
feat: add LogicOp.Top and himp_complete_top wiring to loom logic rules
volodeyka May 31, 2026
c7a5955
refactor: head-reduce projections in loom simp rule construction
volodeyka May 31, 2026
385111d
feat: thread state-argument names through loom spec rule construction
volodeyka May 31, 2026
fe24a91
refactor: extend loom backward-rule cache keys with preIsTop and stat…
volodeyka May 31, 2026
9145eae
refactor: restructure loom vcgen into per-goal-kind solve strategies
volodeyka May 31, 2026
2d49438
feat: add lmvcgen (names := ...) syntax and wire elimLets/errorOnMiss…
volodeyka May 31, 2026
5f9c1d3
refactor: simplify loom driver worklist and honor errorOnMissingSpec/…
volodeyka May 31, 2026
412655c
test: add loom vcgen strategy unit tests
volodeyka May 31, 2026
f0616e6
test: add IntroPre unit test for the precondition-intro helper
volodeyka May 31, 2026
113fdcb
test: add loom case-study suite under Test/Cases
volodeyka May 31, 2026
36176c6
test: port do-logic and for-in loop benchmarks to loom
volodeyka May 31, 2026
08200fd
test: refresh top-level loom benchmark tests for new tactic surface
volodeyka May 31, 2026
2266e0e
test: update loom concrete/epost/equality tests for new tactic surface
volodeyka May 31, 2026
a4ad83d
test: update loom test aggregator and driver
volodeyka May 31, 2026
25b830a
test: trim sym benchmarks superseded by loom cases
volodeyka May 31, 2026
fa27680
fix strategies tests
volodeyka May 31, 2026
62a1996
refactor: organize loom solve as strategies
volodeyka Jun 1, 2026
e8beea6
refactor: carry loom solve scope through worklist
volodeyka Jun 1, 2026
93320a4
refactor: run loom solve strategies through control flow
volodeyka Jun 1, 2026
e2eb175
update comments
volodeyka Jun 1, 2026
a1924d0
feat: add reasure sets
volodeyka Jun 1, 2026
87dc8ed
refactor: sync SpecLemmas with current mvcgen'; move spec annotations…
volodeyka Jun 1, 2026
20e8bab
get ready
volodeyka Jun 1, 2026
607e79f
feat: add internal lmvcgen rule construction
volodeyka Jun 3, 2026
dd6f6f7
test: port mvcgen sym benchmarks to lmvcgen
volodeyka Jun 3, 2026
908af65
fix: comment out broken test
volodeyka Jun 3, 2026
144afff
fix: reduce projection heads in mvcgen
volodeyka Jun 3, 2026
e00634c
refactor: separate internal loop exception invariants
volodeyka Jun 3, 2026
ac67127
fix: apply simp for case splitting hyps; fix GetThrowSet
volodeyka Jun 3, 2026
bbc6fa4
fix: clean up mavcgen case studies
volodeyka Jun 4, 2026
a84c1a1
refactor: reimplement driver to match old mvcgen' style
volodeyka Jun 4, 2026
ba65fc2
perf: optimise findSpec and database migration function
volodeyka Jun 4, 2026
002f643
refactor: add more type info into simp rule construction for better e…
volodeyka Jun 4, 2026
43121c2
feat: handle schematic components of `epost`
volodeyka Jun 4, 2026
451905e
feat: add Sym-based `assumption` pre-discharger option to `mvcgen'`
volodeyka Jun 4, 2026
0d2b0f1
refcator: simplify tryEPostVC strategy
volodeyka Jun 4, 2026
b1d7056
refactor: delete redundant options file
volodeyka Jun 4, 2026
d5af88f
feat: reduce `⊥.head x1 x2...` vcs
volodeyka Jun 4, 2026
08b0198
refactor: small code refactor
volodeyka Jun 5, 2026
472c206
refactor: adjust code after Attr change
volodeyka Jun 9, 2026
591d1b9
fix: small fixes
volodeyka Jun 9, 2026
772e6a5
chore: remove unused derived-laws port script and revert mleave edits
volodeyka Jun 9, 2026
c737d23
fix: temporarly comment out a broken test
volodeyka Jun 9, 2026
0e8103c
Merge remote-tracking branch 'origin/master' into sg/new-mvcgen
sgraf812 Jun 9, 2026
9b68a19
refactor: rename Utils->Util
sgraf812 Jun 9, 2026
fb4bc6f
chore: remove mention of lmvcgen
sgraf812 Jun 9, 2026
4aa40f6
chore: rename Adequacy->Soundness
sgraf812 Jun 9, 2026
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
1 change: 1 addition & 0 deletions src/Init/Internal/Order/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ noncomputable def bot : α := csup (chain_empty α)

scoped notation "⊥" => bot

@[grind .]
theorem bot_le (x : α) : ⊥ ⊑ x := by
apply csup_le
intro x y; contradiction
Expand Down
34 changes: 19 additions & 15 deletions src/Lean/Elab/Tactic/Do/Internal/VCGen.lean
Original file line number Diff line number Diff line change
@@ -1,33 +1,37 @@
/-
Copyright (c) 2026 Lean FRO LLC. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sebastian Graf
Authors: Vladimir Gladshtein, Sebastian Graf
-/
module

prelude
public import Lean.Elab.Tactic.Do.Internal.VCGen.Reduce
public import Lean.Elab.Tactic.Do.Internal.VCGen.Types
public import Lean.Elab.Tactic.Do.Internal.VCGen.SpecDB
public import Lean.Elab.Tactic.Do.Internal.VCGen.RuleConstruction
public import Lean.Elab.Tactic.Do.Internal.VCGen.Context
public import Lean.Elab.Tactic.Do.Internal.VCGen.RuleConstruct.Spec
public import Lean.Elab.Tactic.Do.Internal.VCGen.RuleConstruct.Simp
public import Lean.Elab.Tactic.Do.Internal.VCGen.RuleConstruct.Logic
public import Lean.Elab.Tactic.Do.Internal.VCGen.RuleConstruct.Match
public import Lean.Elab.Tactic.Do.Internal.VCGen.Util
public import Lean.Elab.Tactic.Do.Internal.VCGen.RuleCache
public import Lean.Elab.Tactic.Do.Internal.VCGen.Entails
public import Lean.Elab.Tactic.Do.Internal.VCGen.EPost
public import Lean.Elab.Tactic.Do.Internal.VCGen.Solve
public import Lean.Elab.Tactic.Do.Internal.VCGen.Driver
public import Lean.Elab.Tactic.Do.Internal.VCGen.Frontend

/-!
The `mvcgen'` tactic, split across the modules above.
The `mvcgen` tactic, split across the modules above.

- `VCGen.Reduce` — SymM head-redex reducer.
- `VCGen.SpecDB` — `SpecTheoremNew`/`SpecTheoremsNew` + database operations.
- `VCGen.RuleConstruction` — SymM rule constructors from spec/simp/split info.
- `VCGen.Context` — `VCGenM`, its `Context`/`State`, the bundle of pre-built rules.
- `VCGen.Util` — generic VCGenM helpers (`introsSimp`, `repeatAndRfl`, app builders).
- `VCGen.RuleCache` — VCGenM cache wrappers around the SymM rule constructors.
- `VCGen.Entails` — entailment-shaped goal decomposition (`solveSPredEntails` etc.).
- `VCGen.Solve` — the main `solve` step / `SolveResult`.
- `VCGen.Types` — `VCGenM`, its `Context`/`Scope`/`State`, config-facing types, and shared caches.
- `VCGen.SpecDB` — spec theorem database migration and lookup.
- `VCGen.RuleConstruct.Spec` — rule construction from `⊑ wp` spec theorems.
- `VCGen.RuleConstruct.Simp` — rule construction from equality spec theorems.
- `VCGen.RuleConstruct.Logic` — rule construction for lattice connectives such as `⊓`, `⇨`,
and `⌜_⌝`.
- `VCGen.RuleConstruct.Match` — rule construction for `ite`, `dite`, and matcher splits.
- `VCGen.Utils` — state intro, precondition intros, simp, and backward-rule application helpers.
- `VCGen.RuleCache` — `VCGenM` cache wrappers around rule constructors.
- `VCGen.Solve` — the main `solve` step and goal classification.
- `VCGen.Driver` — the worklist driver (`work`, `emitVC`, `main`, `Result`).
- `VCGen.Frontend` — the `mvcgen'` syntax + tactic elaborator + `mkSpecContext`.
- `VCGen.Frontend` — the `mvcgen` syntax, tactic elaborator, and `mkContext`.
-/
202 changes: 0 additions & 202 deletions src/Lean/Elab/Tactic/Do/Internal/VCGen/Context.lean

This file was deleted.

Loading
Loading