On this page
Capped variance of random k-SAT: the definitions
Imports 0 library modules and 5 external
External: HB.structures, mathcomp.classical.all_ssreflect_compat, mathcomp.algebra.algebraic_hierarchy.ssralg, mathcomp.algebra.numeric_hierarchy.ssrnum, mathcomp.reals.reals
Target T7 of phase 12 (AGENTS.md, section Phase 12; the plan notes/phase12-plan.md, section 3). The definitions of the statement of SatVarianceStatement.v, from 'A limiting satisfiability threshold for every fixed clause size' (family 235 of the OpenAI math collection, revision 1581d4cbd, source/sections/introduction.tex and concentration.tex). The Lean counterparts, in lean/OAI/Probability/RandomSAT of the collection:
Lean: ProperClause, SatisfiesClause (Model.lean)
Lean: capMultiplier, mainCap, variance_capped (Concentration.lean)
All are finite; R is any realType.
- A proper signed k-clause on n variables is a partial sign assignment c of {ffun 'I_n -> option bool} with exactly k signed variables (proper_clause): c i = Some true is the literal x_i, c i = Some false the literal not x_i, and c i = None means that x_i does not occur. The clauses of size k form the finite type clause n k; there are 2^k binom(n, k) of them, as in the manuscript, and the uniform law on clause n k gives each the same probability.
- An assignment sigma of {ffun 'I_n -> bool} satisfies c when some literal of c is true (clause_sat). For a tuple t of M clauses, prefix_sat t m says that some assignment satisfies the clauses of t at the positions i < m; prefix_sat t 0 holds.
- sat_cap k n = 2^(k+1) n is the cap L_k n of the manuscript, and sat_prefix_len t is the largest m <= M with prefix_sat t m: the length of the longest satisfiable prefix of t, capped at M. For M = sat_cap k n it is the statistic V_n = min(H_n - 1, L_k n) of the manuscript, written directly on the first L_k n clauses, so that no clause beyond the cap is drawn.
- sat_mean F is the average of F over all tuples of M clauses, its expectation when the M clauses are independent and uniform on clause n k (drawn with replacement), and sat_var F its variance. sat_capped_var n k is the variance of V_n.
Declarations9 exported
sectionsat_variance_definitions
Variable R : realType. Implicit Types n k M : nat.
Type
forall [n : nat], nat -> {ffun 'I_n -> option bool} -> bool
Definition
Definition proper_clause n k (c : {ffun 'I_n -> option bool}) : bool := #|[set i | c i != None]| == k.
Used by 12 declarations in 4 files
- this file: clause
- GaussianApplications.RandomSAT.Model: proper_prepend, proper_ftail, proper_ftail_None, proper_ftail_Some, card_clause0, card_clause0S
- GaussianApplications.RandomSAT.Replacement: card_support_clause, proper_opp, card_kills
- GaussianApplications.RandomSAT.Forcing: proper_rename, rename_clause
Type
nat -> nat -> TypeDefinition
Definition clause n k := {c : {ffun 'I_n -> option bool} | proper_clause k c}.
Used by 99 declarations in 6 files
- this file: clause_sat, prefix_sat, sat_prefix_len, sat_mean, sat_var, sat_capped_var
- GaussianApplications.RandomSAT.Model: add_clause, restrict, life, add_clause_sub, add_clause_mono, add_clauseC, add_clause0, restrictE, restrict_sub, restrict_mono, life0, life_ge0, life_le, life_mono, life_sum, prefix_satE, prefix_sat0, prefix_sat_le, sat_prefix_lenE, cabsent, cpresent, proper_ftail_None, proper_ftail_Some, csplit, cjoin, cjoin_surj, card_clause0, card_clause0S, card_clauseSS, card_clause, card_clause_gt0, unif_mean_clause_split
- GaussianApplications.RandomSAT.Pivotal: clause_avg, tuple_avg, kill, alive_restrict_le, survival_le_geom, T0, life_mean, life_var, delay, second, delay_cons, pivot_sqr, delay_cross, delay_cons_sqr, secondS, life_var_succ_le
- GaussianApplications.RandomSAT.Replacement: support, card_support_clause, kills_frozen, frozen_kills, card_kills, killE_forced, kill_replacement
- GaussianApplications.RandomSAT.Forcing: sat_cabsent, sat_cpresent, del_ok, era_ok, deleted, erased, sat_del_ok, era_ok_sat, head_forced_reduction, head_forced_ind, csplit_absent, csplit_present, restrict_add_clause, clause_avg_tuple_avg, ler_tuple_avg_cst, survival_antitone, Ck, Ck1, del_mean, era_mean, del_meanS, Ck, Ck1, clause_avg_subr, survival_le, Ck1, head_forced, proper_rename, rename_clause, sat_rename, rename_tuple, mem_restrict_rename, forced_rename, forced_coord_mean, forced_frac
- GaussianApplications.RandomSAT.Variance: trunc_le_forced, sat_capped_varE, sat_variance_bound_explicit
Type
forall [n k : nat], {ffun 'I_n -> bool} -> clause n k -> bool
Definition
Definition clause_sat n k (sigma : {ffun 'I_n -> bool}) (c : clause n k) : bool := [exists i, val c i == Some (sigma i)].
Used by 13 declarations in 4 files
- this file: prefix_sat
- GaussianApplications.RandomSAT.Model: add_clause, add_clauseC, restrictE
- GaussianApplications.RandomSAT.Replacement: kills_frozen
- GaussianApplications.RandomSAT.Forcing: sat_cabsent, sat_cpresent, del_ok, era_ok, sat_del_ok, era_ok_sat, restrict_add_clause, sat_rename
Type
forall [n k M : nat], M.-tuple (clause n k) -> nat -> bool
Definition
Definition prefix_sat n k M (t : M.-tuple (clause n k)) (m : nat) : bool := [exists sigma : {ffun 'I_n -> bool}, [forall i : 'I_M, (i < m)%N ==> clause_sat sigma (tnth t i)]].
Used by 5 declarations in 2 files
- this file: sat_prefix_len
- GaussianApplications.RandomSAT.Model: prefix_satE, prefix_sat0, prefix_sat_le, sat_prefix_lenE
Type
nat -> nat -> nat
Definition
Definition sat_cap k n : nat := 2 ^ k.+1 * n.
Used by 3 declarations in 2 files
- this file: sat_capped_var
- GaussianApplications.RandomSAT.Variance: sat_capped_varE, sat_variance_bound_explicit
Type
forall [n k M : nat], M.-tuple (clause n k) -> nat
Definition
Definition sat_prefix_len n k M (t : M.-tuple (clause n k)) : nat := \max_(m < M.+1 | prefix_sat t m) m.
Used by 3 declarations in 3 files
- this file: sat_capped_var
- GaussianApplications.RandomSAT.Model: sat_prefix_lenE
- GaussianApplications.RandomSAT.Variance: sat_capped_varE
Type
forall [R : realType] [n k M : nat], (M.-tuple (clause n k) -> R) -> R
Definition
Definition sat_mean n k M (F : M.-tuple (clause n k) -> R) : R := (#|{: M.-tuple (clause n k)}|%:R)^-1 * \sum_(t : M.-tuple (clause n k)) F t.
Used by 1 declaration in 1 file
- this file: sat_var
Type
forall [R : realType] [n k M : nat], (M.-tuple (clause n k) -> R) -> R
Definition
Definition sat_var n k M (F : M.-tuple (clause n k) -> R) : R := sat_mean (fun t => (F t - sat_mean F) ^+ 2).
Used by 1 declaration in 1 file
- this file: sat_capped_var
Type
forall R : realType, nat -> nat -> RDefinition
Definition sat_capped_var n k : R := sat_var (fun t : (sat_cap k n).-tuple (clause n k) => (sat_prefix_len t)%:R).
Used by 4 declarations in 2 files
- GaussianApplications.SatVarianceStatement: sat_variance_statement
- GaussianApplications.RandomSAT.Variance: sat_capped_varE, sat_variance_bound_explicit, sat_variance_bound