- F : Lean.Expr → FingerprintFeatureValue
- A : FingerprintFeatureValue
- B : FingerprintFeatureValue
- N : FingerprintFeatureValue
Instances For
Equations
- Duper.FingerprintFeatureValue.A.format = (Lean.MessageData.ofFormat ∘ Std.format) "A"
- Duper.FingerprintFeatureValue.B.format = (Lean.MessageData.ofFormat ∘ Std.format) "B"
- Duper.FingerprintFeatureValue.N.format = (Lean.MessageData.ofFormat ∘ Std.format) "N"
- (Duper.FingerprintFeatureValue.F e).format = Lean.toMessageData "F(" ++ Lean.toMessageData e ++ Lean.toMessageData ")"
Instances For
Instances For
- node {α : Type} [BEq α] [Hashable α] (childA childB childN : FingerprintTrie α) (childF : Array (Lean.Expr × FingerprintTrie α)) : FingerprintTrie α
- leaf {α : Type} [BEq α] [Hashable α] (vals : Array α) : FingerprintTrie α
Instances For
Equations
Equations
Instances For
Equations
- Duper.FingerprintTrie.format.spaces n = String.join (List.map (fun (x : Nat) => " ") (List.range n))
Instances For
Equations
- Duper.foldMsgs arr = Array.foldl (fun (acc m : Lean.MessageData) => acc ++ Lean.toMessageData "\n" ++ m) (Lean.toMessageData "") arr
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Duper.instToMessageDataProdNatClauseClausePosOptionEligibility = { toMessageData := Duper.printVal }
Equations
- Duper.instToMessageDataFingerprintTrie = { toMessageData := Duper.FingerprintTrie.printElems }
Every ClauseFingerprintTrie (that isn't a subtrie of a different ClauseFingerprintTrie) must have a depth equal to numFingerprintFeatures
Instances For
Yields an empty ClauseFingerprintTrie with the given depth d
Equations
Instances For
Yields an empty ClauseFingerprintTrie with the correct depth
Instances For
- root : ClauseFingerprintTrie
- filterSet : Std.HashSet Clause
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
- One or more equations did not get rendered due to their size.
- Duper.RootCFPTrie.transformToUntypedFirstOrderTerm (Lean.Expr.forallE binderName binderType b binderInfo) = Duper.RootCFPTrie.transformToUntypedFirstOrderTerm b
- Duper.RootCFPTrie.transformToUntypedFirstOrderTerm (Lean.Expr.lam binderName binderType b binderInfo) = Duper.RootCFPTrie.transformToUntypedFirstOrderTerm b
- Duper.RootCFPTrie.transformToUntypedFirstOrderTerm (Lean.Expr.bvar bvarNum) = pure (Lean.Expr.bvar bvarNum)
- Duper.RootCFPTrie.transformToUntypedFirstOrderTerm (Lean.Expr.mdata data e_2) = Duper.RootCFPTrie.transformToUntypedFirstOrderTerm e_2
- Duper.RootCFPTrie.transformToUntypedFirstOrderTerm (Lean.Expr.const name us) = pure (Lean.Expr.const name [])
- Duper.RootCFPTrie.transformToUntypedFirstOrderTerm e = pure e
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
- One or more equations did not get rendered due to their size.
- Duper.RootCFPTrie.mkSingleton [] v = Duper.FingerprintTrie.leaf #[v]
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
- One or more equations did not get rendered due to their size.
- Duper.RootCFPTrie.insertHelper (Duper.FingerprintTrie.leaf vals) [] v = pure (Duper.FingerprintTrie.leaf (vals.push v))
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
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.