Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/chyanju/picus
/ functions
Functions
4,080 in github.com/chyanju/picus
⨍
Functions
4,080
◇
Types & classes
283
↓ 3 callers
Function
t
`coeff * prod(vars)` as a `PolyTerm`, collapsing repeated name occurrences into `(VarIdx, exp)` pairs.
crates/picus-solver/src/cdclt/ff_theory_tests.rs:21
↓ 3 callers
Method
to_smtlib
SMT-LIB-compatible textual form. `Silent` returns an empty string; other variants emit one or more lines matching the expected response shape.
crates/picus-solver/src/smt2/session.rs:612
↓ 3 callers
Function
transform
( f: &Formula, var_names: &[String], atoms: &mut AtomTable, sat: &mut Solver, )
crates/picus-solver/src/cdclt/cnf.rs:51
↓ 3 callers
Function
tri_dfs_on_lex
Run the existing depth-first triangular search on a freshly-computed Lex Gröbner basis. The Lex order makes every internal node univariate in the smal
crates/picus-solver/src/gb/model.rs:418
↓ 3 callers
Function
try_triangular_solve
Triangular model construction for a zero-dimensional ideal (cvc5 `multi_roots` style): solve variable-by-variable using univariate roots of the substi
crates/picus-solver/src/gb/model.rs:157
↓ 3 callers
Method
x_name
Canonical name for the original-copy variable of wire `wire` (e.g. `x5`).
crates/picus-smt/src/poly_ir.rs:117
↓ 3 callers
Method
y_name
Canonical name for the alt-copy variable of wire `wire` (e.g. `y5`).
crates/picus-smt/src/poly_ir.rs:123
↓ 2 callers
Function
aboz_trap_r1cs
Synthetic ABOZ trap: with `sel = 0` the bilinear products vanish and the linear sum admits multiple `(y0, y1)` pairs.
crates/picus-analysis/tests/soundness.rs:61
↓ 2 callers
Method
add_bitsum
(&mut self, bits: Vec<VarIdx>)
crates/picus-solver/src/frontend/encoder/constraint_system.rs:159
↓ 2 callers
Method
add_generators
Reduce each generator by the current basis, then integrate it: drop zeros, collapse to the trivial ideal on a constant, otherwise generate its S-pairs
crates/picus-solver/src/ff/sparse_gb.rs:186
↓ 2 callers
Method
add_generators_observed
Observed variant of [`Self::add_generators`]: the supplied observer receives `on_initial_basis` / `on_new_poly` / `on_inter_reduce` callbacks during t
crates/picus-solver/src/ff/buchberger/incremental.rs:115
↓ 2 callers
Method
add_terms
Add a descending-sorted, nonzero-coefficient term list, cascading merges up through the buckets on overflow.
crates/picus-core/src/ff/sparse_geobucket.rs:132
↓ 2 callers
Method
alt_var
Index of the `y_i` variable in the underlying ring.
crates/picus-smt/src/poly_ir.rs:97
↓ 2 callers
Function
apply_phase_save
Reorder a Brancher::Roots so the saved phase for a variable (if any) is moved to the back of the Vec, so Vec::pop tries it first.
crates/picus-solver/src/split_gb/search.rs:107
↓ 2 callers
Method
arena
(&self)
crates/picus-solver/src/sat/solver.rs:510
↓ 2 callers
Method
assert_disequality
Assert `a != b`.
crates/picus-solver/src/gb/incremental.rs:89
↓ 2 callers
Function
assert_fglm_in_source_ideal
Stronger: every FGLM output element must lie in the SOURCE DRL ideal. This catches a class of bug where FGLM emits a polynomial that happens to equal
crates/picus-solver/src/gb/fglm_tests.rs:255
↓ 2 callers
Function
assert_indexed_matches_geobucket
(n: usize)
crates/picus-core/src/ff/polynomial/tests.rs:141
↓ 2 callers
Function
assert_same_ideal
Mutual ideal-membership: ideals generated by `a_basis` and `b_basis` are equal. Each basis is RE-COMPUTED as a DRL GB (the ring's stored order) before
crates/picus-solver/src/gb/fglm_tests.rs:217
↓ 2 callers
Function
assert_trivial_iff_unit_in_gens
SPEC: if 1 ∈ I, both engines must produce {1} as the reduced GB.
crates/picus-solver/src/ff/f4/tests.rs:1771
↓ 2 callers
Function
assignment_poly
Build a polynomial of the form `x_var - val`.
crates/picus-solver/src/split_gb/search.rs:357
↓ 2 callers
Function
atom_to_node
( lhs: &[crate::frontend::encoder::PolyTerm], rhs: &[crate::frontend::encoder::PolyTerm], var_name
crates/picus-solver/src/cdclt/cnf.rs:71
↓ 2 callers
Method
basis_count
Total number of basis elements tracked (initial + derived).
crates/picus-solver/src/gb/tracer.rs:71
↓ 2 callers
Function
bigint
(val: &BigUint)
crates/picus-smt/src/backends/z3_nia.rs:131
↓ 2 callers
Function
bitsum_eq_const
k-bit bitsum pin: `b_0 + 2·b_1 + ... = v`.
crates/picus-solver/src/cdclt/orchestrator_tests.rs:1098
↓ 2 callers
Function
block
(pairs: &[(u32, u32)])
crates/picus-analysis/tests/soundness.rs:19
↓ 2 callers
Function
build_ite_chain
(depth: usize, target: u64)
crates/picus-solver/tests/cdclt_vs_dnf_parity.rs:754
↓ 2 callers
Function
build_model
Build output model from assignment.
crates/picus-solver/src/gb/model.rs:463
↓ 2 callers
Function
build_part_map
Index every "part-shaped" equality (exactly one degree-2 monomial over two distinct variables, no higher degree, no square) by the canonical pair of i
crates/picus-analysis/src/propagation/basis2/compconstant.rs:148
↓ 2 callers
Function
build_poly_term
( tm: &'a cvc5_ff::TermManager, vars: &HashMap<String, cvc5_ff::Term<'a>>, ir: &PolyIR, poly:
crates/picus-smt/src/backends/cvc5_ff.rs:175
↓ 2 callers
Method
build_spoly
Build the S-polynomial of `pair`: `(lcm/LT_i)·f_i − (lc_i/lc_j)·(lcm/LT_j)·f_j`, scaled so the two leading terms cancel.
crates/picus-solver/src/ff/buchberger/mod.rs:602
↓ 2 callers
Function
build_xor
`(xor b_1 ... b_n)`: True iff an odd number of the `b_i` are True. Built as a left-associative chain of binary `xor`.
crates/picus-solver/src/smt2/mod.rs:912
↓ 2 callers
Method
bump_var_activity
(&mut self, v: Var)
crates/picus-solver/src/sat/solver.rs:131
↓ 2 callers
Function
canon
Canonical reduced-GB fingerprint: interreduce (→ monic reduced GB, which is unique for a fixed order) then sort the per-polynomial hashes.
crates/picus-solver/src/ff/buchberger/gvw_tests.rs:27
↓ 2 callers
Function
cantor_zassenhaus
Cantor–Zassenhaus for the squarefree polynomial `poly`. Returns its irreducible factors (over GF(p), restricted to those involved in the linear part —
crates/picus-solver/src/ff/univariate.rs:434
↓ 2 callers
Function
check_circuit
Check uniqueness of output signals in an R1CS circuit from a file path. This is the main entry point for programmatic use. It reads the R1CS file, co
crates/picus/src/lib.rs:270
↓ 2 callers
Function
check_full_with_atoms
Build a ConstraintSystem from a `(atom, polarity)` fact trail against `atoms`, encode, dispatch to the GB solver, and map any returned UNSAT core back
crates/picus-solver/src/cdclt/ff_theory.rs:428
↓ 2 callers
Method
check_with_timeout
Solve with a timeout duration.
crates/picus-solver/src/gb/incremental.rs:150
↓ 2 callers
Function
classify_sort
Classify a sort s-expression as `Ff`, `Bool`, or unknown.
crates/picus-solver/src/smt2/mod.rs:90
↓ 2 callers
Function
clear_frobenius_cache_for_tests
()
crates/picus-solver/src/ff/univariate.rs:318
↓ 2 callers
Method
clone_monomial
Clone a monomial. Accepts either `&Monomial` or `Monomial`.
crates/picus-core/src/poly.rs:165
↓ 2 callers
Method
cmp
(&self, other: &Self)
crates/picus-solver/src/ff/f4/matrix.rs:125
↓ 2 callers
Method
cmp_key
(&self)
crates/picus-solver/src/ff/spair.rs:70
↓ 2 callers
Method
coeff
Coefficient of `t^d`. Returns `0` for any `d` past the trailing nonzero term.
crates/picus-solver/src/ff/hilbert.rs:88
↓ 2 callers
Method
coeffs
(&self)
crates/picus-solver/src/ff/univariate.rs:41
↓ 2 callers
Function
collect_bilinear_zero
Wire indices `(a, b)` for every equality of the form `c * x_a * x_b = 0`. Skips constraints that have any other terms beyond the single bilinear monom
crates/picus-analysis/src/propagation/aboz.rs:175
↓ 2 callers
Function
compact_used_vars
Compact `system.var_names` to only the variables actually referenced by some equality, disequality, assignment, or bitsum. Returns a new `ConstraintSy
crates/picus-solver/src/frontend/encoder.rs:155
↓ 2 callers
Function
compute_gb_buchberger
( poly_ring: &FfPolyRing, generators: Vec<Poly>, cancel: &CancelToken, order: FfOrder, )
crates/picus-solver/src/gb/ideal/engine.rs:388
↓ 2 callers
Function
compute_gb_dispatch
( pr: &FfPolyRing, gens: Vec<Poly>, cancel: &CancelToken, order: FfOrder, tracer: Option<&
crates/picus-solver/src/gb/ideal/engine.rs:201
↓ 2 callers
Function
compute_gb_with_order_traced
( poly_ring: &FfPolyRing, generators: Vec<Poly>, cancel: &CancelToken, order: FfOrder, tra
crates/picus-solver/src/gb/ideal/engine.rs:545
↓ 2 callers
Function
compute_tier1_for
Free-function port of `FfTheory::compute_tier1`.
crates/picus-solver/src/cdclt/ff_theory.rs:149
↓ 2 callers
Function
compute_tier2_for
Free-function port of `FfTheory::compute_tier2`.
crates/picus-solver/src/cdclt/ff_theory.rs:199
↓ 2 callers
Function
constraint_to_poly
Lower one R1CS constraint `A * B = C` into a polynomial equality `expand(A) * expand(B) - expand(C) = 0` in the given copy. Returns `Ok(None)` when th
crates/picus-smt/src/poly_ir.rs:328
↓ 2 callers
Method
contains_with_cancel
Cancel-aware membership test. On cancel returns the value computed from a partial reduction, which may falsely report "not in I" if cancellation inter
crates/picus-solver/src/gb/ideal.rs:192
↓ 2 callers
Function
cyclic_n
`cyclic-N`: the N-variable cyclic ideal. Classical GB benchmark known to produce many same-sugar batches and a large basis.
crates/picus-solver/tests/bench_perf.rs:216
↓ 2 callers
Method
decide
Decide a fresh literal: open a new decision level and enqueue `lit` as a decision (no reason). Returns `false` when the literal is already assigned to
crates/picus-solver/src/sat/solver.rs:370
↓ 2 callers
Function
degrevlex_to_lex
Convert a DegRevLex Gröbner basis to a Lex GB for model extraction. Uses FGLM order conversion ([`crate::gb::fglm`]) when the ideal is zero-dimension
crates/picus-solver/src/gb/mod.rs:159
↓ 2 callers
Function
diff_systems_dense
Hand-built differential bank. Each closure returns a generator list spec'd by mathematical structure — never read back from engine output. Property: F
crates/picus-solver/src/ff/f4/tests.rs:1638
↓ 2 callers
Method
dnf
Compute (or return the cached) DNF expansion of `self.formula`. May allocate `O(3^k)` literal containers for k-CNF inputs.
crates/picus-solver/src/boolean.rs:199
↓ 2 callers
Function
dummy_header
()
crates/picus-r1cs/src/grammar_tests.rs:12
↓ 2 callers
Function
dump_gb_stats
Write the accumulated split-GB / DFS counters to stderr (if `engine.gb_stats_enabled` was set during a previous `check_r1cs` call).
crates/picus/src/lib.rs:353
↓ 2 callers
Function
dump_profile
Write the accumulated per-site wall-clock profile to stderr (if `engine.profile_enabled` was set during a previous `check_r1cs` call). `tag` is a free
crates/picus/src/lib.rs:347
↓ 2 callers
Function
echelonize_no_prov
Convenience: echelonize without provenance tracking.
crates/picus-core/src/ff/linalg.rs:122
↓ 2 callers
Method
emit_zero_product
Push the zero-product disjunction `(var_s = 0) ∨ (var_o = 0)` for both the original and alt copies, deduplicating on `(s, o)` so fixed-point re-runs d
crates/picus-analysis/src/propagation/aboz.rs:147
↓ 2 callers
Function
encode_named
(s: &NamedSystem)
crates/picus-solver/benches/solver_bench.rs:83
↓ 2 callers
Method
ensure_slot
Ensure the union-find has a slot for `v`. Returns its initial rep (itself).
crates/picus-solver/src/cdclt/equality_engine.rs:107
↓ 2 callers
Function
enumerate_std_monomials_count
Brute-force enumeration of standard monomials of the monomial ideal `gens`: any exponent vector with total degree ≤ `max_deg` that is NOT divisible by
crates/picus-solver/src/ff/hilbert_tests.rs:220
↓ 2 callers
Method
eq
(&self, other: &Self)
crates/picus-solver/src/gb/fglm.rs:38
↓ 2 callers
Method
eval
Evaluate a single command. Returns `Silent` for `(exit)`; script-termination on `(exit)` is enforced by [`SmtSession::eval_script`] rather than this m
crates/picus-solver/src/smt2/session.rs:146
↓ 2 callers
Function
eval_poly_core
Helper: evaluate a polynomial at a point. Local copy so we don't pollute the public API. Identical math to `split_gb::tests::eval_poly`.
crates/picus-solver/src/core_tests.rs:696
↓ 2 callers
Method
exit_expansion
(&mut self)
crates/picus-solver/src/smt2/mod.rs:633
↓ 2 callers
Method
expand_macro
Resolve a macro call by alpha-substituting arguments into the body.
crates/picus-solver/src/smt2/mod.rs:645
↓ 2 callers
Function
expected_pairs
The set of `(name, theory)` backends expected under the current feature configuration. Always includes `(native, Ff)`; cvc5 and z3 entries are gated b
crates/picus-smt/tests/backend_plugin.rs:12
↓ 2 callers
Method
extend_with_cancel
Extend an existing ideal by adding new generators incrementally. Reuses the existing reduced GB and runs incremental Buchberger seeded with the exist
crates/picus-solver/src/gb/ideal.rs:81
↓ 2 callers
Method
extend_with_cancel_traced
Traced variant of `extend_with_cancel`. Feeds Buchberger observer events to the supplied `tracer`, which must be sized for at least `self.basis.len()
crates/picus-solver/src/gb/ideal.rs:134
↓ 2 callers
Method
finalize_basis
(self)
crates/picus-solver/src/ff/buchberger/mod.rs:1059
↓ 2 callers
Function
find_roots_checked
Like [`find_roots`], but also reports whether root finding was complete**. Returns `(roots, complete)`: `complete == true` — every root of `poly` in
crates/picus-solver/src/ff/univariate.rs:470
↓ 2 callers
Function
find_sum_var
Find the signal `S` defined by `S = Σ part_outs` (each part output appears with one shared coefficient `−k`, `S` with `+k`, no other terms). Returns t
crates/picus-analysis/src/propagation/basis2/compconstant.rs:288
↓ 2 callers
Function
find_trivial_element
Find the index of a nonzero constant in the basis, if any.
crates/picus-solver/src/gb/mod.rs:180
↓ 2 callers
Function
first_eq
Now extract the formula's literal `Eq` polynomial pair and semantically compare under every x value.
crates/picus-solver/src/smt2/tests_property.rs:692
↓ 2 callers
Function
first_equality_index
First polynomial index in `encoded` whose provenance is an `Equality(_)`.
crates/picus-solver/src/cdclt/ff_theory_tests.rs:891
↓ 2 callers
Method
gave_up
`true` iff a theory-conflict resolution bailed out (see [`Self::give_up`]). Callers must treat this as Unknown, not UNSAT.
crates/picus-solver/src/sat/solver.rs:586
↓ 2 callers
Method
get_or_create_slot
Returns the ring slot for `name`, claiming a new slot if it is the first appearance. If `add_field_polys` is set, pushes the field polynomial `x^p − x
crates/picus-solver/src/cdclt/ff_theory_incremental.rs:217
↓ 2 callers
Method
get_value
Get the value of a term in the current model.
crates/cvc5-ff/src/solver.rs:294
↓ 2 callers
Function
gf2
()
crates/picus-solver/src/ff/univariate_tests.rs:156
↓ 2 callers
Method
grow_to
(&mut self, v: Var)
crates/picus-solver/src/cdclt/atoms.rs:327
↓ 2 callers
Function
hash_constraint_side
(cs: &crate::frontend::encoder::ConstraintSystem, domain: u64)
crates/picus-solver/src/incremental_context.rs:699
↓ 2 callers
Method
heap_insert
(&mut self, v: Var)
crates/picus-solver/src/sat/solver.rs:145
↓ 2 callers
Method
heap_percolate_down
Sift element at index `i` down while a child has higher activity.
crates/picus-solver/src/sat/solver.rs:189
↓ 2 callers
Method
heap_percolate_up
(&mut self, mut i: usize)
crates/picus-solver/src/sat/solver.rs:171
↓ 2 callers
Method
homogenize
Homogenize a *lifted* polynomial in `Ph` (where the `h` exponent is currently 0 in every term) by raising it to its top total degree. For every term
crates/picus-solver/src/gb/homog_ring.rs:90
↓ 2 callers
Function
idx_term
(coeff: u64, vars: &[(VarIdx, u16)])
crates/picus-solver/src/frontend/encoder_tests_spec.rs:13
↓ 2 callers
Method
indeterminate
Single-variable monomial of degree 1.
crates/picus-core/src/poly.rs:135
↓ 2 callers
Method
index
(self)
crates/picus-solver/src/sat/clause.rs:10
↓ 2 callers
Method
integer_sort
Get the Integer sort.
crates/cvc5-ff/src/term_manager.rs:47
↓ 2 callers
Method
integrate
Push a new (already monic, non-constant) polynomial into the basis: generate its pairs against the active basis first (so pairs against soon-to-be-dea
crates/picus-solver/src/ff/sparse_gb.rs:218
↓ 2 callers
Method
into_basis
The active basis (a Gröbner basis, not yet inter-reduced), or `{1}` when the ideal is the whole ring.
crates/picus-solver/src/ff/sparse_gb.rs:301
↓ 2 callers
Function
ir_with_benign_disjunction
Lower the GF(7) system, target wire 2, and inject a benign always-true disjunction `(x0 = 1) ∨ (x2 = 5)`. Wire 0 is pinned to 1, so the clause holds u
crates/picus-smt/tests/multi_prime.rs:158
↓ 2 callers
Method
is_bit
Test whether `var` is bit-constrained: either it is a globally asserted bit (`self.bits`, populated from user `x*(x-1)=0` constraints) or some basis i
crates/picus-solver/src/frontend/bitprop.rs:89
↓ 2 callers
Method
is_exhaustive
Whether exhausting this brancher constitutes a proof that no extension exists. `Roots` is always exhaustive (we computed every root over F_p); `Round
crates/picus-solver/src/gb/brancher.rs:81
← previous
next →
701–800 of 4,080, ranked by callers