Derived laws of SPred
#
This module contains some laws about SPred
that are derived from
the laws in Std.Do.Laws
.
Connectives #
Monotonicity and congruence #
Boolean algebra #
Pure #
Miscellaneous #
Working with entailment #
Tactic support #
@[reducible, inline]
Tautology in SPred
as a quotable definition.
Equations
Instances For
instance
Std.Do.SPred.Tactic.instPropAsSPredTautologyEntailsImp
{σs : List (Type u)}
{P Q : SPred σs}
:
instance
Std.Do.SPred.Tactic.instPropAsSPredTautologyEntailsPureTrue
{σs : List (Type u)}
{P : SPred σs}
:
PropAsSPredTautology (⊢ₛ P) P
theorem
Std.Do.SPred.Tactic.ProofMode.start_entails
{σs : List (Type u)}
{P : SPred σs}
{φ : Prop}
[PropAsSPredTautology φ P]
:
(⊢ₛ P) → φ
theorem
Std.Do.SPred.Tactic.ProofMode.elim_entails
{σs : List (Type u)}
{P : SPred σs}
{φ : Prop}
[PropAsSPredTautology φ P]
:
φ → ⊢ₛ P
theorem
Std.Do.SPred.Tactic.Exact.from_tautology
{σs : List (Type u)}
{φ : Prop}
{P T : SPred σs}
[PropAsSPredTautology φ T]
(h : φ)
:
theorem
Std.Do.SPred.Tactic.Specialize.pure_start
{σs : List (Type u)}
{φ : Prop}
{H P T : SPred σs}
[PropAsSPredTautology φ H]
(hpure : φ)
(hgoal : P ∧ H ⊢ₛ T)
:
instance
Std.Do.SPred.Tactic.instHasFrameCurryULiftPropUpAndOfAnd
{φ : Prop}
(σs : List (Type u_1))
(P P' : SVal.StateTuple σs → Prop)
(Q : SPred σs)
[HasFrame
spred((SVal.curry fun (t : SVal.StateTuple σs) => { down := P t }) ∧ SVal.curry fun (t : SVal.StateTuple σs) => { down := P' t })
Q φ]
:
HasFrame (SVal.curry fun (t : SVal.StateTuple σs) => { down := P t ∧ P' t }) Q φ