Documentation

Duper.Fingerprint

@[reducible, inline]
Equations
Instances For
    inductive Duper.FingerprintTrie (α : Type) [BEq α] [Hashable α] :
    Instances For
      partial def Duper.countElems {α : Type} [BEq α] [Hashable α] :
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        Fingerprint features that will define levels of the fingerprint trie.

        Equations
        Instances For

          Every ClauseFingerprintTrie (that isn't a subtrie of a different ClauseFingerprintTrie) must have a depth equal to numFingerprintFeatures

          Equations
          Instances For

            Yields an empty ClauseFingerprintTrie with the correct depth

            Equations
            Instances For
              Instances For

                General fingerprint feature function (see: http://www.eprover.eu/EXPDATA/FP_INDEX/schulz_fp-index_ext.pdf) Note that this function assumes that e already has had its metavariables instantiated

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For

                  This implements the ⌊e⌋ function described in https://matryoshka-project.github.io/pubs/hounif_article.pdf. Although the ⌊e⌋ function description assumes that e is in η-long β-reduced normal form, this function assumes e is an expression on which beta, eta, and zeta reduction have been applied exhaustively. I believe that the same specification descrbied in the paper can be used with this assumption, but if it turns out I'm mistaken, we can add a step to the beginning to this function that converts e to η-long β-reduced normal form.

                  Note: The output of this function is not guaranteed (or expected) to be well-formed.

                  Equations
                  Instances For
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For

                      Given a fingerprint f, yields a ClauseFingerprintTrie whose depth equals the length of f and whose only value is v (located at the position indiced by f)

                      Equations
                      Instances For

                        Inserts v into t at the position indiced by fingerprint f. Throws an error if the length of f does not equal the depth of t

                        Equations
                        Instances For

                          Adds v to t.root at the location indiced by e and removes v.2.1 from t.filterSet so that previously deleted clauses can be readded

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            Adds c to t.filterSet so that Clause × ClausePos pairs with c as the clause are ignored going forward

                            Equations
                            Instances For

                              Returns all clause and position pairs that indicate subexpressions that may be unifiable with e

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For

                                Returns all clause and position pairs that indicate subexpressions that e can match onto (i.e. assigning metavariables in e)

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For

                                  Returns all clause and position pairs that indicate subexpressions that can be matched onto e (i.e. not assigning metavariables in e)

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For