parent
d6cd738ab4
commit
4c44f4ef7c
1 changed files with 44 additions and 0 deletions
44
tests/lean/run/9363.lean
Normal file
44
tests/lean/run/9363.lean
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
import Std.Tactic.Do
|
||||
|
||||
open Std.Do
|
||||
|
||||
set_option mvcgen.warning false
|
||||
|
||||
axiom P : Nat → Prop
|
||||
axiom P' : Nat → Prop
|
||||
axiom Q : Nat → Prop
|
||||
axiom R : Assertion ps
|
||||
|
||||
axiom hPQ : ∀ n, P n → P' n → Q n
|
||||
|
||||
axiom G : StateM Nat Unit
|
||||
axiom H : StateM Nat Unit
|
||||
|
||||
noncomputable def F : StateM Nat Unit := do
|
||||
G
|
||||
H
|
||||
|
||||
@[spec]
|
||||
axiom G_spec : ⦃⌜True⌝⦄ G ⦃⇓ _ n => ⌜P n ∧ P' n⌝⦄
|
||||
|
||||
@[spec]
|
||||
axiom H_spec : ⦃fun n => ⌜Q n⌝⦄ H ⦃⇓ _ => R⦄
|
||||
|
||||
theorem F_spec :
|
||||
⦃⌜True⌝⦄
|
||||
F
|
||||
⦃⇓ _ => R⦄ := by
|
||||
mvcgen [F]
|
||||
|
||||
-- Goal:
|
||||
-- s✝¹ : Nat
|
||||
-- r✝ : Unit
|
||||
-- s✝ : Nat
|
||||
-- h : P s✝ ∧ P' s✝
|
||||
-- ⊢ Q s✝
|
||||
|
||||
rename_i h
|
||||
cases h
|
||||
apply hPQ
|
||||
assumption
|
||||
assumption
|
||||
Loading…
Add table
Reference in a new issue