This PR introduces a Hoare logic for monadic programs in `Std.Do.Triple`, and assorted tactics: * `mspec` for applying Hoare triple specifications * `mvcgen` to turn a Hoare triple proof obligation `⦃P⦄ prog ⦃Q⦄` into pure verification conditoins (i.e., without any traces of Hoare triples or weakest preconditions reminiscent of `prog`). The resulting verification conditions in the stateful logic of `Std.Do.SPred` can be discharged manually with the tactics coming with its custom proof mode or with automation such as `simp` and `grind`. This is pre-release of a planned feature and not yet intended for production use. We are grateful for feedback of early adopters, though. Co-authored-by: Sebastian Graf <sg@lean-fro.org>
11 lines
265 B
Text
11 lines
265 B
Text
/-
|
|
Copyright (c) 2025 Lean FRO LLC. All rights reserved.
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
Authors: Sebastian Graf
|
|
-/
|
|
prelude
|
|
import Std.Do.SPred
|
|
import Std.Do.WP
|
|
import Std.Do.Triple
|
|
import Std.Do.PredTrans
|
|
import Std.Do.PostCond
|