#include "formula_profile.h"

LYMPHOSAT_MATCHER {
    const bool ternary_tseitin =
        profile.binary_clause_fraction <= 0.002 &&
        profile.dominant_clause_len == 3 &&
        profile.avg_clause_len >= 2.99 &&
        profile.avg_clause_len <= 3.01 &&
        profile.ternary_clause_fraction >= 0.998 &&
        profile.all_positive_clause_fraction >= 0.10 &&
        profile.all_positive_clause_fraction <= 0.15 &&
        profile.all_negative_clause_fraction >= 0.10 &&
        profile.all_negative_clause_fraction <= 0.15 &&
        profile.normalized_clause_span_mean >= 0.25 &&
        profile.normalized_clause_span_mean <= 0.35 &&
        profile.small_span_clause_fraction >= 0.24 &&
        profile.small_span_clause_fraction <= 0.35 &&
        profile.pure_var_fraction <= 1e-12;

    const bool grid_tseitin =
        profile.binary_clause_fraction <= 0.01 &&
        profile.dominant_clause_len == 4 &&
        profile.avg_clause_len >= 3.8 &&
        profile.avg_clause_len <= 4.05 &&
        profile.clauses_per_var >= 3.0 &&
        profile.clauses_per_var <= 4.5 &&
        profile.all_positive_clause_fraction >= 0.055 &&
        profile.all_positive_clause_fraction <= 0.09 &&
        profile.all_negative_clause_fraction >= 0.055 &&
        profile.all_negative_clause_fraction <= 0.09 &&
        profile.mixed_clause_fraction >= 0.82 &&
        profile.mixed_clause_fraction <= 0.89 &&
        ((profile.normalized_clause_span_mean <= 0.12 &&
          profile.small_span_clause_fraction <= 0.08) ||
         (profile.normalized_clause_span_mean >= 0.55 &&
          profile.normalized_clause_span_mean <= 0.62 &&
          profile.small_span_clause_fraction <= 0.05)) &&
        profile.pure_var_fraction <= 1e-12;

    const bool quad_ternary_tseitin =
        profile.binary_clause_fraction <= 0.01 &&
        profile.num_vars <= 360 &&
        profile.dominant_clause_len == 3 &&
        profile.avg_clause_len >= 2.99 &&
        profile.avg_clause_len <= 3.01 &&
        profile.ternary_clause_fraction >= 0.998 &&
        profile.clauses_per_var >= 3.9 &&
        profile.clauses_per_var <= 4.1 &&
        profile.literals_per_var >= 11.5 &&
        profile.literals_per_var <= 12.5 &&
        profile.all_positive_clause_fraction >= 0.11 &&
        profile.all_positive_clause_fraction <= 0.14 &&
        profile.all_negative_clause_fraction >= 0.11 &&
        profile.all_negative_clause_fraction <= 0.14 &&
        profile.mixed_clause_fraction >= 0.74 &&
        profile.mixed_clause_fraction <= 0.76 &&
        profile.normalized_clause_span_mean >= 0.49 &&
        profile.normalized_clause_span_mean <= 0.51 &&
        profile.small_span_clause_fraction <= 0.01 &&
        profile.occurrence_stddev <= 1e-12 &&
        profile.pure_var_fraction <= 1e-12;

    const bool tri_ternary_tseitin =
        profile.binary_clause_fraction <= 0.01 &&
        profile.num_vars <= 360 &&
        profile.dominant_clause_len == 3 &&
        profile.avg_clause_len >= 2.99 &&
        profile.avg_clause_len <= 3.01 &&
        profile.clauses_per_var >= 2.55 &&
        profile.clauses_per_var <= 2.8 &&
        profile.literals_per_var >= 7.5 &&
        profile.literals_per_var <= 8.5 &&
        profile.all_positive_clause_fraction >= 0.11 &&
        profile.all_positive_clause_fraction <= 0.14 &&
        profile.all_negative_clause_fraction >= 0.11 &&
        profile.all_negative_clause_fraction <= 0.14 &&
        profile.mixed_clause_fraction >= 0.74 &&
        profile.mixed_clause_fraction <= 0.76 &&
        profile.normalized_clause_span_mean >= 0.50 &&
        profile.normalized_clause_span_mean <= 0.53 &&
        profile.small_span_clause_fraction <= 0.05 &&
        profile.occurrence_stddev <= 1e-12 &&
        profile.pure_var_fraction <= 1e-12;

    const bool marg_like =
        profile.binary_clause_fraction <= 0.02 &&
        profile.dominant_clause_len == 4 &&
        profile.avg_clause_len >= 4.1 &&
        profile.avg_clause_len <= 4.3 &&
        profile.clauses_per_var >= 4.1 &&
        profile.clauses_per_var <= 4.4 &&
        profile.mixed_clause_fraction >= 0.88 &&
        profile.mixed_clause_fraction <= 0.91 &&
        profile.all_positive_clause_fraction >= 0.06 &&
        profile.all_positive_clause_fraction <= 0.07 &&
        profile.all_negative_clause_fraction >= 0.04 &&
        profile.all_negative_clause_fraction <= 0.06 &&
        profile.normalized_clause_span_mean >= 0.58 &&
        profile.normalized_clause_span_mean <= 0.63 &&
        profile.small_span_clause_fraction >= 0.20 &&
        profile.small_span_clause_fraction <= 0.28 &&
        profile.pure_var_fraction <= 1e-12;

    const bool dodecahedron_like =
        profile.binary_clause_fraction <= 0.01 &&
        profile.dominant_clause_len == 3 &&
        profile.avg_clause_len >= 2.99 &&
        profile.avg_clause_len <= 3.01 &&
        profile.clauses_per_var >= 2.6 &&
        profile.clauses_per_var <= 2.8 &&
        profile.mixed_clause_fraction >= 0.74 &&
        profile.mixed_clause_fraction <= 0.76 &&
        profile.all_positive_clause_fraction >= 0.11 &&
        profile.all_positive_clause_fraction <= 0.14 &&
        profile.all_negative_clause_fraction >= 0.11 &&
        profile.all_negative_clause_fraction <= 0.14 &&
        profile.normalized_clause_span_mean >= 0.45 &&
        profile.normalized_clause_span_mean <= 0.52 &&
        profile.small_span_clause_fraction >= 0.45 &&
        profile.pure_var_fraction <= 1e-12;

    const bool hypercube6_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.dominant_clause_len == 6 &&
        profile.avg_clause_len >= 5.99 &&
        profile.avg_clause_len <= 6.01 &&
        profile.clauses_per_var >= 10.60 &&
        profile.clauses_per_var <= 10.75 &&
        profile.literals_per_var >= 63.5 &&
        profile.literals_per_var <= 64.5 &&
        profile.mixed_clause_fraction >= 0.97 &&
        profile.mixed_clause_fraction <= 0.98 &&
        profile.all_positive_clause_fraction >= 0.011 &&
        profile.all_positive_clause_fraction <= 0.015 &&
        profile.all_negative_clause_fraction >= 0.011 &&
        profile.all_negative_clause_fraction <= 0.015 &&
        profile.normalized_clause_span_mean >= 0.71 &&
        profile.normalized_clause_span_mean <= 0.73 &&
        profile.small_span_clause_fraction <= 0.01 &&
        profile.occurrence_stddev <= 0.10 &&
        profile.positive_block_candidate_len == 6 &&
        profile.pure_var_fraction <= 1e-12;

    const bool mod2c_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.num_vars <= 1000 &&
        profile.dominant_clause_len == 4 &&
        profile.avg_clause_len >= 3.98 &&
        profile.avg_clause_len <= 4.02 &&
        profile.clauses_per_var >= 3.95 &&
        profile.clauses_per_var <= 4.05 &&
        profile.literals_per_var >= 15.9 &&
        profile.literals_per_var <= 16.1 &&
        profile.all_positive_clause_fraction >= 0.06 &&
        profile.all_positive_clause_fraction <= 0.08 &&
        profile.all_negative_clause_fraction >= 0.055 &&
        profile.all_negative_clause_fraction <= 0.07 &&
        profile.mixed_clause_fraction >= 0.85 &&
        profile.mixed_clause_fraction <= 0.88 &&
        profile.normalized_clause_span_mean >= 0.59 &&
        profile.normalized_clause_span_mean <= 0.61 &&
        profile.small_span_clause_fraction <= 0.02 &&
        profile.occurrence_stddev <= 0.20 &&
        profile.positive_block_candidate_len == 4 &&
        profile.pure_var_fraction <= 1e-12;

    const bool mod2c_exact4_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.num_vars <= 180 &&
        profile.clauses_seen <= 700 &&
        profile.dominant_clause_len == 4 &&
        profile.avg_clause_len >= 3.98 &&
        profile.avg_clause_len <= 4.02 &&
        profile.clauses_per_var >= 3.95 &&
        profile.clauses_per_var <= 4.05 &&
        profile.literals_per_var >= 15.9 &&
        profile.literals_per_var <= 16.1 &&
        profile.all_positive_clause_fraction >= 0.055 &&
        profile.all_positive_clause_fraction <= 0.075 &&
        profile.all_negative_clause_fraction >= 0.055 &&
        profile.all_negative_clause_fraction <= 0.075 &&
        profile.mixed_clause_fraction >= 0.85 &&
        profile.mixed_clause_fraction <= 0.88 &&
        profile.normalized_clause_span_mean >= 0.57 &&
        profile.normalized_clause_span_mean <= 0.64 &&
        profile.small_span_clause_fraction <= 0.02 &&
        profile.occurrence_stddev <= 0.20 &&
        profile.positive_block_candidate_len == 4 &&
        profile.pure_var_fraction <= 1e-12;

    const bool mod2_ternary_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.dominant_clause_len == 3 &&
        profile.avg_clause_len >= 2.99 &&
        profile.avg_clause_len <= 3.01 &&
        profile.ternary_clause_fraction >= 0.999 &&
        profile.clauses_per_var >= 2.63 &&
        profile.clauses_per_var <= 2.80 &&
        profile.literals_per_var >= 7.8 &&
        profile.literals_per_var <= 8.2 &&
        profile.all_positive_clause_fraction >= 0.09 &&
        profile.all_positive_clause_fraction <= 0.16 &&
        profile.all_negative_clause_fraction >= 0.09 &&
        profile.all_negative_clause_fraction <= 0.16 &&
        profile.mixed_clause_fraction >= 0.74 &&
        profile.mixed_clause_fraction <= 0.76 &&
        profile.normalized_clause_span_mean >= 0.49 &&
        profile.normalized_clause_span_mean <= 0.54 &&
        profile.small_span_clause_fraction <= 0.12 &&
        profile.occurrence_stddev <= 0.20 &&
        profile.pure_var_fraction <= 1e-12;

    const bool mod2_3cage_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.dominant_clause_len == 3 &&
        profile.avg_clause_len >= 2.99 &&
        profile.avg_clause_len <= 3.01 &&
        profile.ternary_clause_fraction >= 0.999 &&
        profile.clauses_per_var >= 2.63 &&
        profile.clauses_per_var <= 2.70 &&
        profile.literals_per_var >= 7.95 &&
        profile.literals_per_var <= 8.05 &&
        profile.all_positive_clause_fraction >= 0.11 &&
        profile.all_positive_clause_fraction <= 0.16 &&
        profile.all_negative_clause_fraction >= 0.11 &&
        profile.all_negative_clause_fraction <= 0.16 &&
        profile.mixed_clause_fraction >= 0.74 &&
        profile.mixed_clause_fraction <= 0.76 &&
        profile.normalized_clause_span_mean >= 0.50 &&
        profile.normalized_clause_span_mean <= 0.52 &&
        profile.small_span_clause_fraction >= 0.05 &&
        profile.small_span_clause_fraction <= 0.12 &&
        profile.occurrence_stddev <= 0.25 &&
        profile.positive_block_candidate_len == 3 &&
        profile.pure_var_fraction <= 1e-12;

    const bool mod2_rand3bip_like =
        profile.binary_clause_fraction <= 0.01 &&
        profile.dominant_clause_len == 3 &&
        profile.avg_clause_len >= 2.99 &&
        profile.avg_clause_len <= 3.01 &&
        profile.ternary_clause_fraction >= 0.999 &&
        profile.num_vars <= 350 &&
        profile.clauses_seen <= 1200 &&
        profile.clauses_per_var >= 3.95 &&
        profile.clauses_per_var <= 4.05 &&
        profile.literals_per_var >= 11.95 &&
        profile.literals_per_var <= 12.05 &&
        profile.all_positive_clause_fraction >= 0.11 &&
        profile.all_positive_clause_fraction <= 0.16 &&
        profile.all_negative_clause_fraction >= 0.09 &&
        profile.all_negative_clause_fraction <= 0.16 &&
        profile.mixed_clause_fraction >= 0.749 &&
        profile.mixed_clause_fraction <= 0.751 &&
        profile.normalized_clause_span_mean >= 0.50 &&
        profile.normalized_clause_span_mean <= 0.51 &&
        profile.small_span_clause_fraction <= 0.03 &&
        profile.occurrence_stddev <= 0.10 &&
        profile.positive_block_candidate_len == 3 &&
        profile.pure_var_fraction <= 1e-12;

    const bool mod2cage_small_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.dominant_clause_len == 3 &&
        profile.avg_clause_len >= 2.99 &&
        profile.avg_clause_len <= 3.01 &&
        profile.clauses_per_var >= 2.6 &&
        profile.clauses_per_var <= 2.8 &&
        profile.literals_per_var >= 7.5 &&
        profile.literals_per_var <= 8.5 &&
        profile.all_positive_clause_fraction >= 0.13 &&
        profile.all_positive_clause_fraction <= 0.145 &&
        profile.all_negative_clause_fraction >= 0.105 &&
        profile.all_negative_clause_fraction <= 0.13 &&
        profile.mixed_clause_fraction >= 0.74 &&
        profile.mixed_clause_fraction <= 0.76 &&
        profile.normalized_clause_span_mean >= 0.49 &&
        profile.normalized_clause_span_mean <= 0.54 &&
        profile.small_span_clause_fraction <= 0.08 &&
        profile.occurrence_stddev <= 0.20 &&
        profile.pure_var_fraction <= 1e-12;

    const bool mod2c_3cage_like =
        profile.binary_clause_fraction >= 0.48 &&
        profile.binary_clause_fraction <= 0.55 &&
        profile.ternary_clause_fraction >= 0.45 &&
        profile.ternary_clause_fraction <= 0.50 &&
        profile.num_vars >= 14000 &&
        profile.num_vars <= 15050 &&
        profile.clauses_seen >= 28000 &&
        profile.clauses_seen <= 30050 &&
        profile.dominant_clause_len == 2 &&
        profile.avg_clause_len >= 2.45 &&
        profile.avg_clause_len <= 2.50 &&
        profile.clauses_per_var >= 1.98 &&
        profile.clauses_per_var <= 2.06 &&
        profile.literals_per_var >= 4.95 &&
        profile.literals_per_var <= 5.05 &&
        profile.all_positive_clause_fraction >= 0.01 &&
        profile.all_positive_clause_fraction <= 0.02 &&
        profile.all_negative_clause_fraction >= 0.005 &&
        profile.all_negative_clause_fraction <= 0.015 &&
        profile.mixed_clause_fraction >= 0.96 &&
        profile.mixed_clause_fraction <= 0.985 &&
        profile.normalized_clause_span_mean >= 0.24 &&
        profile.normalized_clause_span_mean <= 0.27 &&
        profile.small_span_clause_fraction <= 0.02 &&
        profile.occurrence_stddev >= 9.0 &&
        profile.occurrence_stddev <= 12.5 &&
        profile.positive_block_candidate_len == 2 &&
        profile.positive_block_clause_fraction >= 0.01 &&
        profile.positive_block_clause_fraction <= 0.02 &&
        profile.binary_vars_touched_fraction >= 0.95 &&
        profile.positive_block_candidate_count >= 350 &&
        profile.pure_var_fraction >= 0.01 &&
        profile.pure_var_fraction <= 0.02;

    const bool mod2c_dense_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.dominant_clause_len == 4 &&
        profile.avg_clause_len >= 4.10 &&
        profile.avg_clause_len <= 4.60 &&
        profile.clauses_per_var >= 6.8 &&
        profile.clauses_per_var <= 7.65 &&
        profile.literals_per_var >= 30.0 &&
        profile.literals_per_var <= 34.0 &&
        profile.all_positive_clause_fraction >= 0.035 &&
        profile.all_positive_clause_fraction <= 0.055 &&
        profile.all_negative_clause_fraction >= 0.040 &&
        profile.all_negative_clause_fraction <= 0.055 &&
        profile.mixed_clause_fraction >= 0.90 &&
        profile.mixed_clause_fraction <= 0.93 &&
        profile.normalized_clause_span_mean >= 0.63 &&
        profile.normalized_clause_span_mean <= 0.65 &&
        profile.small_span_clause_fraction <= 0.02 &&
        profile.occurrence_stddev >= 7.0 &&
        profile.occurrence_stddev <= 9.5 &&
        profile.positive_block_candidate_len == 4 &&
        profile.pure_var_fraction <= 1e-12;

    const bool mod2_dense_small_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.dominant_clause_len == 3 &&
        profile.avg_clause_len >= 2.99 &&
        profile.avg_clause_len <= 3.01 &&
        profile.ternary_clause_fraction >= 0.999 &&
        profile.num_vars <= 350 &&
        profile.clauses_seen <= 1200 &&
        profile.clauses_per_var >= 3.95 &&
        profile.clauses_per_var <= 4.05 &&
        profile.literals_per_var >= 11.95 &&
        profile.literals_per_var <= 12.05 &&
        profile.all_positive_clause_fraction >= 0.11 &&
        profile.all_positive_clause_fraction <= 0.14 &&
        profile.all_negative_clause_fraction >= 0.11 &&
        profile.all_negative_clause_fraction <= 0.14 &&
        profile.mixed_clause_fraction >= 0.74 &&
        profile.mixed_clause_fraction <= 0.76 &&
        profile.normalized_clause_span_mean >= 0.49 &&
        profile.normalized_clause_span_mean <= 0.54 &&
        profile.small_span_clause_fraction <= 0.02 &&
        profile.occurrence_stddev <= 0.20 &&
        profile.positive_block_candidate_len == 3 &&
        profile.pure_var_fraction <= 1e-12;

    const bool marg2_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.dominant_clause_len == 3 &&
        profile.avg_clause_len >= 2.99 &&
        profile.avg_clause_len <= 3.01 &&
        profile.ternary_clause_fraction >= 0.999 &&
        profile.clauses_per_var >= 2.63 &&
        profile.clauses_per_var <= 2.68 &&
        profile.literals_per_var >= 7.9 &&
        profile.literals_per_var <= 8.1 &&
        profile.all_positive_clause_fraction >= 0.14 &&
        profile.all_positive_clause_fraction <= 0.16 &&
        profile.all_negative_clause_fraction >= 0.09 &&
        profile.all_negative_clause_fraction <= 0.10 &&
        profile.mixed_clause_fraction >= 0.74 &&
        profile.mixed_clause_fraction <= 0.76 &&
        profile.normalized_clause_span_mean >= 0.49 &&
        profile.normalized_clause_span_mean <= 0.51 &&
        profile.small_span_clause_fraction >= 0.95 &&
        profile.pure_var_fraction <= 1e-12;

    const bool marg2_dense_like =
        profile.binary_clause_fraction <= 0.02 &&
        profile.dominant_clause_len == 4 &&
        profile.avg_clause_len >= 3.64 &&
        profile.avg_clause_len <= 3.67 &&
        profile.clauses_per_var >= 3.42 &&
        profile.clauses_per_var <= 3.44 &&
        profile.literals_per_var >= 12.5 &&
        profile.literals_per_var <= 12.6 &&
        profile.all_positive_clause_fraction >= 0.05 &&
        profile.all_positive_clause_fraction <= 0.11 &&
        profile.all_negative_clause_fraction >= 0.07 &&
        profile.all_negative_clause_fraction <= 0.12 &&
        profile.mixed_clause_fraction >= 0.80 &&
        profile.mixed_clause_fraction <= 0.85 &&
        profile.normalized_clause_span_mean >= 0.53 &&
        profile.normalized_clause_span_mean <= 0.61 &&
        profile.small_span_clause_fraction >= 0.16 &&
        profile.small_span_clause_fraction <= 0.90 &&
        profile.occurrence_stddev >= 3.0 &&
        profile.occurrence_stddev <= 3.5 &&
        profile.pure_var_fraction <= 1e-12;

    const bool urqh1c3x3_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.num_vars <= 60 &&
        profile.clauses_seen >= 250 &&
        profile.clauses_seen <= 360 &&
        profile.dominant_clause_len == 6 &&
        profile.avg_clause_len >= 5.4 &&
        profile.avg_clause_len <= 5.8 &&
        profile.clauses_per_var >= 7.0 &&
        profile.clauses_per_var <= 7.8 &&
        profile.all_positive_clause_fraction >= 0.02 &&
        profile.all_positive_clause_fraction <= 0.03 &&
        profile.all_negative_clause_fraction >= 0.02 &&
        profile.all_negative_clause_fraction <= 0.03 &&
        profile.mixed_clause_fraction >= 0.94 &&
        profile.mixed_clause_fraction <= 0.97 &&
        profile.normalized_clause_span_mean >= 0.70 &&
        profile.normalized_clause_span_mean <= 0.73 &&
        profile.small_span_clause_fraction <= 0.10 &&
        profile.occurrence_stddev >= 18 &&
        profile.occurrence_stddev <= 25 &&
        profile.pure_var_fraction <= 1e-12;

    const bool urquhart_small_like =
        profile.binary_clause_fraction <= 0.01 &&
        profile.dominant_clause_len >= 5 &&
        profile.dominant_clause_len <= 6 &&
        profile.avg_clause_len >= 4.60 &&
        profile.avg_clause_len <= 5.90 &&
        profile.clauses_per_var >= 5.0 &&
        profile.clauses_per_var <= 8.5 &&
        profile.literals_per_var >= 24.0 &&
        profile.literals_per_var <= 52.0 &&
        profile.all_positive_clause_fraction <= 0.055 &&
        profile.all_negative_clause_fraction <= 0.040 &&
        profile.mixed_clause_fraction >= 0.93 &&
        profile.mixed_clause_fraction <= 0.97 &&
        profile.normalized_clause_span_mean >= 0.68 &&
        profile.normalized_clause_span_mean <= 0.73 &&
        profile.occurrence_stddev >= 4.0 &&
        profile.occurrence_stddev <= 40.0 &&
        profile.positive_block_candidate_len >= 3 &&
        profile.positive_block_candidate_len <= 6 &&
        profile.positive_block_clause_fraction <= 0.05 &&
        profile.pure_var_fraction <= 1e-12;

    const bool urquhart_mid_like =
        profile.binary_clause_fraction <= 0.01 &&
        profile.dominant_clause_len == 5 &&
        profile.avg_clause_len >= 4.20 &&
        profile.avg_clause_len <= 5.80 &&
        profile.clauses_per_var >= 4.20 &&
        profile.clauses_per_var <= 8.10 &&
        profile.literals_per_var >= 18.0 &&
        profile.literals_per_var <= 43.5 &&
        profile.all_positive_clause_fraction >= 0.02 &&
        profile.all_positive_clause_fraction <= 0.05 &&
        profile.all_negative_clause_fraction >= 0.02 &&
        profile.all_negative_clause_fraction <= 0.11 &&
        profile.mixed_clause_fraction >= 0.84 &&
        profile.mixed_clause_fraction <= 0.95 &&
        profile.normalized_clause_span_mean >= 0.58 &&
        profile.normalized_clause_span_mean <= 0.71 &&
        profile.small_span_clause_fraction >= 0.0 &&
        profile.small_span_clause_fraction <= 1.0 &&
        profile.occurrence_stddev >= 0.0 &&
        profile.occurrence_stddev <= 15.0 &&
        profile.num_vars <= 100 &&
        profile.positive_block_candidate_len >= 4 &&
        profile.positive_block_candidate_len <= 5 &&
        profile.positive_block_clause_fraction <= 0.04 &&
        profile.pure_var_fraction <= 1e-12;

    const bool urquhart_ternary_small_like =
        profile.binary_clause_fraction <= 0.02 &&
        profile.num_vars <= 40 &&
        profile.clauses_seen <= 120 &&
        profile.dominant_clause_len == 3 &&
        profile.avg_clause_len >= 2.99 &&
        profile.avg_clause_len <= 3.01 &&
        profile.clauses_per_var >= 2.63 &&
        profile.clauses_per_var <= 2.70 &&
        profile.literals_per_var >= 7.95 &&
        profile.literals_per_var <= 8.05 &&
        profile.all_positive_clause_fraction >= 0.13 &&
        profile.all_positive_clause_fraction <= 0.14 &&
        profile.all_negative_clause_fraction >= 0.11 &&
        profile.all_negative_clause_fraction <= 0.12 &&
        profile.mixed_clause_fraction >= 0.74 &&
        profile.mixed_clause_fraction <= 0.76 &&
        profile.normalized_clause_span_mean >= 0.53 &&
        profile.normalized_clause_span_mean <= 0.55 &&
        profile.small_span_clause_fraction >= 0.35 &&
        profile.small_span_clause_fraction <= 0.40 &&
        profile.occurrence_stddev <= 0.20 &&
        profile.positive_block_candidate_len == 3 &&
        profile.pure_var_fraction <= 1e-12;

    const bool urqh_binary_like =
        profile.binary_clause_fraction >= 0.45 &&
        profile.binary_clause_fraction <= 0.55 &&
        profile.ternary_clause_fraction >= 0.45 &&
        profile.ternary_clause_fraction <= 0.50 &&
        profile.num_vars >= 13000 &&
        profile.num_vars <= 13650 &&
        profile.clauses_seen >= 26500 &&
        profile.clauses_seen <= 27400 &&
        profile.dominant_clause_len == 2 &&
        profile.avg_clause_len >= 2.45 &&
        profile.avg_clause_len <= 2.50 &&
        profile.clauses_per_var >= 2.00 &&
        profile.clauses_per_var <= 2.06 &&
        profile.literals_per_var >= 5.00 &&
        profile.literals_per_var <= 5.05 &&
        profile.all_positive_clause_fraction >= 0.015 &&
        profile.all_positive_clause_fraction <= 0.03 &&
        profile.all_negative_clause_fraction >= 0.005 &&
        profile.all_negative_clause_fraction <= 0.015 &&
        profile.mixed_clause_fraction >= 0.96 &&
        profile.mixed_clause_fraction <= 0.98 &&
        profile.normalized_clause_span_mean >= 0.24 &&
        profile.normalized_clause_span_mean <= 0.26 &&
        profile.small_span_clause_fraction >= 0.005 &&
        profile.small_span_clause_fraction <= 0.02 &&
        profile.occurrence_stddev >= 9.0 &&
        profile.occurrence_stddev <= 12.5 &&
        profile.positive_block_candidate_len == 2 &&
        profile.pure_var_fraction >= 0.01 &&
        profile.pure_var_fraction <= 0.02;

    const bool urquhart_large_like =
        profile.binary_clause_fraction <= 0.01 &&
        profile.dominant_clause_len >= 6 &&
        profile.dominant_clause_len <= 7 &&
        profile.avg_clause_len >= 5.05 &&
        profile.avg_clause_len <= 6.6 &&
        profile.clauses_per_var >= 6.0 &&
        profile.clauses_per_var <= 13.5 &&
        profile.literals_per_var >= 30.0 &&
        profile.literals_per_var <= 86.0 &&
        profile.all_positive_clause_fraction <= 0.055 &&
        profile.all_negative_clause_fraction <= 0.055 &&
        profile.mixed_clause_fraction >= 0.93 &&
        profile.normalized_clause_span_mean >= 0.68 &&
        profile.normalized_clause_span_mean <= 0.77 &&
        profile.small_span_clause_fraction <= 0.35 &&
        profile.occurrence_stddev >= 12.0 &&
        profile.occurrence_stddev <= 40.0 &&
        profile.positive_block_candidate_len >= 3 &&
        profile.positive_block_clause_fraction <= 0.03 &&
        profile.pure_var_fraction <= 1e-12;

    const bool tri_tseitin_like =
        profile.binary_clause_fraction <= 0.0015 &&
        profile.dominant_clause_len == 3 &&
        profile.avg_clause_len >= 2.995 &&
        profile.avg_clause_len <= 3.005 &&
        profile.ternary_clause_fraction >= 0.998 &&
        profile.clauses_per_var >= 2.6 &&
        profile.clauses_per_var <= 2.8 &&
        profile.literals_per_var >= 7.9 &&
        profile.literals_per_var <= 8.1 &&
        profile.all_positive_clause_fraction >= 0.10 &&
        profile.all_positive_clause_fraction <= 0.145 &&
        profile.all_negative_clause_fraction >= 0.10 &&
        profile.all_negative_clause_fraction <= 0.145 &&
        profile.mixed_clause_fraction >= 0.74 &&
        profile.mixed_clause_fraction <= 0.76 &&
        profile.normalized_clause_span_mean >= 0.49 &&
        profile.normalized_clause_span_mean <= 0.53 &&
        profile.small_span_clause_fraction >= 0.01 &&
        profile.small_span_clause_fraction <= 0.40 &&
        profile.occurrence_stddev <= 0.10 &&
        profile.positive_block_candidate_len == 3 &&
        profile.pure_var_fraction <= 1e-12;

    const bool mod2c_rand3bip_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.dominant_clause_len == 4 &&
        profile.avg_clause_len >= 4.0 &&
        profile.avg_clause_len <= 4.60 &&
        profile.clauses_per_var >= 6.8 &&
        profile.clauses_per_var <= 7.65 &&
        profile.literals_per_var >= 30.0 &&
        profile.literals_per_var <= 34.5 &&
        profile.all_positive_clause_fraction >= 0.044 &&
        profile.all_positive_clause_fraction <= 0.075 &&
        profile.all_negative_clause_fraction >= 0.044 &&
        profile.all_negative_clause_fraction <= 0.075 &&
        profile.mixed_clause_fraction >= 0.89 &&
        profile.mixed_clause_fraction <= 0.92 &&
        profile.normalized_clause_span_mean >= 0.59 &&
        profile.normalized_clause_span_mean <= 0.66 &&
        profile.small_span_clause_fraction <= 0.02 &&
        profile.occurrence_stddev >= 6.0 &&
        profile.occurrence_stddev <= 12.5 &&
        profile.positive_block_candidate_len == 4 &&
        profile.pure_var_fraction <= 1e-12;

    const bool mod2c_rand3bip_wide_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.dominant_clause_len == 4 &&
        profile.avg_clause_len >= 4.20 &&
        profile.avg_clause_len <= 4.60 &&
        profile.clauses_per_var >= 6.8 &&
        profile.clauses_per_var <= 7.65 &&
        profile.literals_per_var >= 29.9 &&
        profile.literals_per_var <= 34.5 &&
        profile.all_positive_clause_fraction >= 0.040 &&
        profile.all_positive_clause_fraction <= 0.055 &&
        profile.all_negative_clause_fraction >= 0.040 &&
        profile.all_negative_clause_fraction <= 0.055 &&
        profile.mixed_clause_fraction >= 0.89 &&
        profile.mixed_clause_fraction <= 0.92 &&
        profile.normalized_clause_span_mean >= 0.61 &&
        profile.normalized_clause_span_mean <= 0.65 &&
        profile.small_span_clause_fraction <= 0.01 &&
        profile.occurrence_stddev >= 7.0 &&
        profile.occurrence_stddev <= 12.5 &&
        profile.positive_block_candidate_len == 4 &&
        profile.pure_var_fraction <= 1e-12;

    const bool marg2_wide_like =
        profile.binary_clause_fraction <= 0.01 &&
        profile.dominant_clause_len == 4 &&
        profile.avg_clause_len >= 3.64 &&
        profile.avg_clause_len <= 3.67 &&
        profile.clauses_per_var >= 3.42 &&
        profile.clauses_per_var <= 3.44 &&
        profile.literals_per_var >= 12.5 &&
        profile.literals_per_var <= 12.6 &&
        profile.all_positive_clause_fraction >= 0.05 &&
        profile.all_positive_clause_fraction <= 0.11 &&
        profile.all_negative_clause_fraction >= 0.075 &&
        profile.all_negative_clause_fraction <= 0.115 &&
        profile.mixed_clause_fraction >= 0.80 &&
        profile.mixed_clause_fraction <= 0.85 &&
        profile.normalized_clause_span_mean >= 0.53 &&
        profile.normalized_clause_span_mean <= 0.61 &&
        profile.small_span_clause_fraction >= 0.16 &&
        profile.small_span_clause_fraction <= 0.24 &&
        profile.occurrence_stddev >= 3.0 &&
        profile.occurrence_stddev <= 3.5 &&
        profile.positive_block_candidate_len >= 3 &&
        profile.positive_block_candidate_len <= 4 &&
        profile.pure_var_fraction <= 1e-12;

    const bool marg3x3_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.dominant_clause_len >= 4 &&
        profile.dominant_clause_len <= 6 &&
        profile.avg_clause_len >= 4.0 &&
        profile.avg_clause_len <= 5.3 &&
        profile.num_vars <= 160 &&
        profile.clauses_per_var >= 3.8 &&
        profile.clauses_per_var <= 6.7 &&
        profile.literals_per_var >= 15.5 &&
        profile.literals_per_var <= 35.0 &&
        profile.all_positive_clause_fraction >= 0.03 &&
        profile.all_positive_clause_fraction <= 0.08 &&
        profile.all_negative_clause_fraction >= 0.03 &&
        profile.all_negative_clause_fraction <= 0.08 &&
        profile.mixed_clause_fraction >= 0.84 &&
        profile.mixed_clause_fraction <= 0.94 &&
        profile.normalized_clause_span_mean >= 0.57 &&
        profile.normalized_clause_span_mean <= 0.72 &&
        profile.small_span_clause_fraction >= 0.0 &&
        profile.small_span_clause_fraction <= 0.35 &&
        profile.occurrence_stddev <= 12.0 &&
        profile.positive_block_candidate_len >= 3 &&
        profile.positive_block_candidate_len <= 5 &&
        profile.pure_var_fraction <= 1e-12;

    const bool hypercube5_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.dominant_clause_len == 5 &&
        profile.avg_clause_len >= 4.99 &&
        profile.avg_clause_len <= 5.01 &&
        profile.clauses_per_var >= 6.3 &&
        profile.clauses_per_var <= 6.5 &&
        profile.literals_per_var >= 31.5 &&
        profile.literals_per_var <= 32.5 &&
        profile.all_positive_clause_fraction >= 0.025 &&
        profile.all_positive_clause_fraction <= 0.035 &&
        profile.all_negative_clause_fraction >= 0.03 &&
        profile.all_negative_clause_fraction <= 0.04 &&
        profile.mixed_clause_fraction >= 0.93 &&
        profile.mixed_clause_fraction <= 0.95 &&
        profile.normalized_clause_span_mean >= 0.67 &&
        profile.normalized_clause_span_mean <= 0.69 &&
        profile.small_span_clause_fraction <= 0.05 &&
        profile.occurrence_stddev <= 0.2 &&
        profile.positive_block_candidate_len == 5 &&
        profile.pure_var_fraction <= 1e-12;

    const bool hypercube7_like =
        profile.binary_clause_fraction <= 1e-12 &&
        profile.dominant_clause_len == 7 &&
        profile.avg_clause_len >= 6.99 &&
        profile.avg_clause_len <= 7.01 &&
        profile.clauses_per_var >= 18.2 &&
        profile.clauses_per_var <= 18.4 &&
        profile.literals_per_var >= 127.5 &&
        profile.literals_per_var <= 128.5 &&
        profile.all_positive_clause_fraction >= 0.006 &&
        profile.all_positive_clause_fraction <= 0.009 &&
        profile.all_negative_clause_fraction >= 0.007 &&
        profile.all_negative_clause_fraction <= 0.010 &&
        profile.mixed_clause_fraction >= 0.98 &&
        profile.mixed_clause_fraction <= 0.99 &&
        profile.normalized_clause_span_mean >= 0.74 &&
        profile.normalized_clause_span_mean <= 0.76 &&
        profile.small_span_clause_fraction <= 0.01 &&
        profile.occurrence_stddev <= 0.10 &&
        profile.positive_block_candidate_len == 7 &&
        profile.pure_var_fraction <= 1e-12;

    const bool mod2_like = mod2_ternary_like || tri_tseitin_like ||
                           mod2cage_small_like || mod2_3cage_like ||
                           mod2c_3cage_like ||
                           mod2_rand3bip_like;

    return ternary_tseitin || grid_tseitin || quad_ternary_tseitin ||
           tri_ternary_tseitin || marg_like || marg2_like ||
           marg2_dense_like || dodecahedron_like || hypercube6_like ||
           hypercube5_like || hypercube7_like || marg2_wide_like ||
           marg3x3_like ||
           mod2_like || mod2_ternary_like || mod2_dense_small_like ||
           mod2c_like || mod2c_exact4_like || mod2c_dense_like ||
           mod2c_rand3bip_like || mod2c_rand3bip_wide_like ||
           mod2cage_small_like ||
           urqh1c3x3_like || urquhart_small_like ||
           urquhart_mid_like || urquhart_ternary_small_like ||
           urqh_binary_like || urquhart_large_like;
}
