def
Validator.Certificate.constraintUR
{n : ℕ}
{pt : STRIPS n}
(C : Certificate pt)
(T : SetType)
(Eᵢ E1ᵢ : ℕ)
:
Constraint (Unit × ℕ)
Equations
- C.constraintUR T Eᵢ E1ᵢ = Constraint.setBounds' C T Eᵢ∧ᶜ(Constraint.isUnion C T E1ᵢ).leftEq T Eᵢ
Instances For
def
Validator.Certificate.constraintUL
{n : ℕ}
{pt : STRIPS n}
(C : Certificate pt)
(T : SetType)
(Eᵢ E1ᵢ : ℕ)
:
Constraint (Unit × ℕ)
Equations
- C.constraintUL T Eᵢ E1ᵢ = Constraint.setBounds' C T Eᵢ∧ᶜ(Constraint.isUnion C T E1ᵢ).rightEq T Eᵢ
Instances For
def
Validator.Certificate.constraintIR
{n : ℕ}
{pt : STRIPS n}
(C : Certificate pt)
(S1ᵢ Sᵢ : ℕ)
:
Constraint (Unit × ℕ)
Equations
- C.constraintIR S1ᵢ Sᵢ = Constraint.stateBounds' C Sᵢ∧ᶜ(Constraint.isStateInter C S1ᵢ).leftEqState Sᵢ
Instances For
def
Validator.Certificate.constraintIL
{n : ℕ}
{pt : STRIPS n}
(C : Certificate pt)
(S1ᵢ Sᵢ : ℕ)
:
Constraint (Unit × ℕ)
Equations
- C.constraintIL S1ᵢ Sᵢ = Constraint.stateBounds' C Sᵢ∧ᶜ(Constraint.isStateInter C S1ᵢ).rightEqState Sᵢ
Instances For
Equations
- C.constraintCI Kᵢ K1ᵢ = Constraint.knowledgeBounds Kᵢ K1ᵢ∧ᶜ(Constraint.isDeadKnowledge C K1ᵢ).seq fun (SIᵢ : ℕ) => Constraint.isStateInit C SIᵢ
Instances For
Equations
- C.constraintCG Kᵢ K1ᵢ = Constraint.knowledgeBounds Kᵢ K1ᵢ∧ᶜ(Constraint.isDeadKnowledge C K1ᵢ).seq fun (SGᵢ : ℕ) => Constraint.isStateGoal C SGᵢ
Instances For
def
Validator.Certificate.constraintKnowledge
{n : ℕ}
{pt : STRIPS n}
{C : Certificate pt}
(hC : C.validSets)
(Kᵢ : Fin C.knowledge.size)
:
(α : Type) × Constraint α
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Validator.Certificate.validKnowledge
{n : ℕ}
{pt : STRIPS n}
{C : Certificate pt}
(hC : C.validSets)
(Kᵢ : Fin C.knowledge.size)
:
Equations
Instances For
structure
Validator.Certificate.valid
{n : ℕ}
{pt : STRIPS n}
(C : Certificate pt)
extends C.validSets :
- validKnowledge (Kᵢ : Fin C.knowledge.size) : Certificate.validKnowledge ⋯ Kᵢ
Instances For
theorem
Validator.Certificate.valid.actionSubsetKnowledgeBounds
{n : ℕ}
{pt : STRIPS n}
{C : Certificate pt}
(hC : C.valid)
(Kᵢ : Fin C.knowledge.size)
{Aᵢ A'ᵢ : ℕ}
(h : ∃ (K : ActionSubsetKnowledge Aᵢ A'ᵢ), C.knowledge[Kᵢ]? = some (Knowledge.actionSubset Aᵢ A'ᵢ K))
:
theorem
Validator.Certificate.valid.stateSubsetKnowledgeBounds
{n : ℕ}
{pt : STRIPS n}
{C : Certificate pt}
(hC : C.valid)
(Kᵢ : Fin C.knowledge.size)
{Sᵢ S'ᵢ : ℕ}
(h : ∃ (K : StateSubsetKnowledge Sᵢ S'ᵢ), C.knowledge[Kᵢ]? = some (Knowledge.stateSubset Sᵢ S'ᵢ K))
:
Equations
- Validator.Certificate.verifyAll h = do let __discr ← Validator.Certificate.verifyAll_aux✝ h (Fin.last k) match __discr with | ⟨PUnit.unit, h_1⟩ => pure ⟨(), ⋯⟩
Instances For
def
Validator.Certificate.verifyAll'
{k : ℕ}
{p : Fin k → Prop}
(verify : (i : Fin k) → Result' (p i))
:
Equations
- Validator.Certificate.verifyAll' verify = do let __discr ← Validator.Certificate.verifyAll'_aux✝ verify (Fin.last k) match __discr with | ⟨PUnit.unit, h⟩ => pure ⟨(), ⋯⟩
Instances For
@[reducible, inline]
Equations
- C.IsUnsolvable = ∃ (Kᵢ : Fin C.knowledge.size) (K : Validator.UnsolvableKnowledge), C.knowledge[Kᵢ] = Validator.Knowledge.unsolvable K
Instances For
@[irreducible]
Equations
- C.verifyIsUnsolvable ⟨0, ⋯⟩ = Validator.throwUnvalid "Unsolvability NOT proven"
- C.verifyIsUnsolvable ⟨Kᵢ.succ, h⟩ = match heq : C.knowledge[Kᵢ] with | Validator.Knowledge.unsolvable K => pure ⟨(), ⋯⟩ | x => C.verifyIsUnsolvable ⟨Kᵢ, ⋯⟩
Instances For
def
Validator.Certificate.verify
{n : ℕ}
{pt : STRIPS n}
(C : Certificate pt)
:
Result' (C.valid ∧ C.IsUnsolvable)
Equations
- One or more equations did not get rendered due to their size.