Documentation

HexPermGroup.Search.Failure

@[irreducible]
def Hex.PermGroup.Search.checkFailure {n : Nat} {G : Group n} {test : Perm n → Bool} (C : Pruner G test) (t : Node G) (certificate : Certificate C.Reason) :

A negative answer accounts for every completion. Subgroup coverage is not a valid reason here: even one satisfying element would refute nonexistence.

Equations
Instances For
    theorem Hex.PermGroup.Search.checkFailure_branch {n : Nat} {G : Group n} {test : Perm n → Bool} (C : Pruner G test) (t : Node G) {level : Level n} {tail : Chain n} (hs : t.suffix = Chain.cons level tail) (children : Array (Certificate C.Reason)) :
    checkFailure C t (Certificate.branch children) = if hc : children.size = level.orbit.points.size then decide (∀ (i : Fin level.orbit.points.size), checkFailure C (t.child hs i) children[↑i] = true) else false
    theorem Hex.PermGroup.Search.checkFailure_sound {n : Nat} {G : Group n} {test : Perm n → Bool} (C : Pruner G test) (t : Node G) (certificate : Certificate C.Reason) (hc : checkFailure C t certificate = true) (p : Perm n) (hp : t.Contains p) :
    test p = false
    theorem Hex.PermGroup.Search.checkFailure_spec {n : Nat} {G : Group n} {test : Perm n → Bool} (C : Pruner G test) (certificate : Certificate C.Reason) (hc : checkFailure C (Node.root G) certificate = true) :
    ¬∃ (p : Element G), test p.val = true
    def Hex.PermGroup.Search.checkWitness {n : Nat} (G : Group n) (test : Perm n → Bool) (p : Perm n) (word : Program) :

    Positive answers need only replay a word in the original generators and the defining test; they make no completeness claim about other branches.

    Equations
    Instances For
      theorem Hex.PermGroup.Search.checkWitness_spec {n : Nat} (G : Group n) (test : Perm n → Bool) (p : Perm n) (word : Program) (h : checkWitness G test p word = true) :