code wiki / (root) / nx_tautology.nx

nx_tautology.nx

buildroot/runtime/nx_tautology.nx

2844 B77 linesdepth 6pulls 6 transitivereach 19 importersview sourcekind library
docsdependenciesstructsconstsfunctions

about

nx_tautology.nx -- syntactic tautology detection on clauses. Per Vampire-displacement roadmap Phase 1 step 4. A clause is a tautology when its truth is forced regardless of interpretation; such clauses add nothing to the search space and are dropped before they enter the passive set. Two patterns recognised here: (a) Reflexive equality: + eq(t, t) for any term t. (b) Propositional pair: contains both +L and -L over identical atoms. Equality predicate symbol id is a parameter -- the caller (TPTP parser, kernel API) names whichever sym_id "=" was registered under. Avoids a magic constant baked into substrate. Sealed verdict {NX_TAUTOLOGY, NX_NOT_TAUTOLOGY}. This is the purely syntactic check; semantic tautology detection (E-resolution across equivalent atoms) is a Phase 2 extension.

dependencies 6 imports · 18 importers

nx_syscalls.nx nx_runtime.nx nx_tier.nx nx_result.nx nx_unify.nx nx_resolution.nx nx_tautology.nx nx_avatar_solve_test.nx nx_backward_subsume_test.nx nx_casc_bench.nx nx_casc_runner_test.nx nx_clause_weight_test.nx nx_discount_test.nx nx_fof_cnf_test.nx nx_fof_tseitin_test.nx nx_indexed_subsume_test.nx nx_pre_sat.nx

diagram shows first 10 each side; +0 more imports, +8 more importers in the complete lists below.

imports: nx_syscalls.nxnx_runtime.nxnx_tier.nxnx_result.nxnx_unify.nxnx_resolution.nx

imported by: nx_avatar_solve_test.nxnx_backward_subsume_test.nxnx_casc_bench.nxnx_casc_runner_test.nxnx_clause_weight_test.nxnx_discount_test.nxnx_fof_cnf_test.nxnx_fof_tseitin_test.nxnx_indexed_subsume_test.nxnx_pre_sat.nxnx_pre_sat_test.nxnx_saturation.nxnx_solve.nxnx_solve_test.nxnx_tautology_test.nxnx_tptp_formula_test.nxnx_tptp_load_test.nxnx_tptp_write_test.nx

structs

none

consts

33const NX_TAUTOLOGY: nx_int = 1
34const NX_NOT_TAUTOLOGY: nx_int = 0

functions

39func nx_lit_is_reflexive_eq(l: *Literal, eq_sym: nx_int) -> nx_int
51func nx_is_tautology(c: *Clause, eq_sym: nx_int) -> nx_int
73func nx_tautology_verdict_name(v: nx_int) -> *u8
called by 1: report