Skip to content

feat(arithmetic): add verified real-quadratic order - #1287

Merged
morluto merged 7 commits into
mainfrom
agent/port-real-quadratic-order-v2
Aug 13, 2026
Merged

feat(arithmetic): add verified real-quadratic order#1287
morluto merged 7 commits into
mainfrom
agent/port-real-quadratic-order-v2

Conversation

@morluto

@morluto morluto commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Summary

Supersedes #993 with a clean post-#1276 semantic port.

  • add provider-independent exact values a+b*sqrt(d) under jacobian.math.real_quadratic;
  • compare two values in one shared square-free real quadratic field using exact rational arithmetic and squared magnitudes;
  • return the exact difference, order, sign case, and inspectable squared-magnitude certificate;
  • install a separate operator-authorized standard-library checker that independently replays the comparison.

Ownership

The public math layer owns the value and order semantics; it has no SymPy dependency. The arithmetic domain publishes one thin operation and checker declaration. A dedicated clean-process checker uses only fractions.Fraction and integer square-free tests.

No general algebraic-field framework, matrix spectral helper, reciprocal relationship graph, generic assurance metadata, or workflow policy is introduced.

Validation

The branch is based directly on 195c4c1ddcb836206fcc759d602d3cf77eb2d7cf. Its port workflow compiled every changed source/test file and removed itself before committing. Tests reproduce the 3*sqrt(3)/8 > 1/2+sqrt(3)/20 comparison and reject a forged order.

Credit

This is a clean post-#1276 port of the original implementation in #993 by @kaoru0822-kitauji. Their original investigation, reproduction, and implementation work are the basis for this replacement.

@morluto
morluto force-pushed the agent/port-real-quadratic-order-v2 branch from 71f01b3 to af07ceb Compare August 12, 2026 18:55
Refresh #1287 while preserving its provider-independent exact value and checker.
Refresh #1287 after #1316 while preserving its provider-independent exact order value.

morluto commented Aug 13, 2026

Copy link
Copy Markdown
Owner Author

Attribution

The independently verified real-quadratic order capability originated in #993, authored by @kaoru0822-kitauji. This PR ports that mathematical and verification work onto the current ownership model; the original credit remains theirs.

@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Coverage Report

Name                                                               Stmts   Miss Branch BrPart  Cover   Missing
--------------------------------------------------------------------------------------------------------------
src/jacobian/adapters/mcp/cli.py                                      15     15      2      0     0%   3-38
src/jacobian/adapters/mcp/context.py                                  96     14     32     12    80%   71, 98, 114-115, 129, 140, 150, 156, 162, 168, 174, 186, 223-225
src/jacobian/adapters/mcp/core.py                                     83      2     10      2    96%   163, 180
src/jacobian/adapters/mcp/deployment_identity.py                      48      8     10      2    83%   44, 49-50, 63-64, 73-74, 79
src/jacobian/adapters/mcp/projections.py                              53     14     14      1    63%   136-149
src/jacobian/adapters/mcp/remote.py                                  303     18     88     12    92%   75, 78, 82, 107, 115, 117, 119, 155, 157, 217-221, 290, 324, 396->398, 413, 416
src/jacobian/adapters/mcp/remote_cli.py                               53     53     18      0     0%   3-159
src/jacobian/adapters/mcp/server.py                                   34      2      2      1    92%   110-112
src/jacobian/adapters/mcp/tooling.py                                 220     49     48     15    75%   65, 77, 98-99, 104, 113-114, 122, 135, 212->228, 215, 222-227, 234-241, 265-267, 299-300, 314, 319-320, 323-324, 326, 335, 338-339, 341, 349-358, 381-384, 439-474
src/jacobian/artifacts.py                                             43     14     10      4    66%   48, 64, 70-71, 81, 99-112
src/jacobian/bounded_process.py                                      530    153    190     43    68%   85-86, 90-91, 103-114, 128-129, 151, 154, 168, 171, 218, 220, 222, 261-283, 300, 325, 359-362, 379-384, 404->406, 462, 508-516, 623, 625, 629, 634, 636, 644, 646, 648, 685, 691, 697-698, 704-705, 712, 714, 734-735, 756-763, 785, 787, 807, 812-814, 821-822, 827-829, 836-847, 850-873, 880-881, 887-888, 904-907, 911-922, 924, 928-929, 934, 945, 949, 951->940, 954-955, 962-963, 972, 974->976, 985, 988-994, 998->997, 1014->1016
src/jacobian/builtin_capabilities.py                                  28     15      2      0    43%   29-30, 85, 88-132
src/jacobian/canonical.py                                            130      9     52      6    92%   35, 72, 100, 139, 159, 181, 184, 211-212
src/jacobian/capability_discovery.py                                  70      1     20      1    98%   144
src/jacobian/capability_dispatch.py                                  106     10     20      5    88%   49-50, 91-92, 163-186, 282, 347, 391-392
src/jacobian/capability_errors.py                                     27      1      2      1    93%   56
src/jacobian/capability_registry.py                                   33      3      8      3    85%   33, 37, 44
src/jacobian/capability_service.py                                    71     10     26     10    79%   46, 56, 69, 95, 110, 112, 116, 118, 123, 125
src/jacobian/capability_validation.py                                 82     11     38      8    84%   27-28, 42-43, 50, 70, 72, 78, 80, 83, 97, 126->152
src/jacobian/capability_verification.py                               67     13     36     11    77%   40-41, 49, 56, 71, 75, 79, 95, 103, 115, 127, 132, 140
src/jacobian/checker_authorization.py                                 63      1      8      1    97%   225
src/jacobian/checker_identity.py                                     391     40    152     33    86%   78-79, 102, 130-138, 145, 252, 258, 359, 387, 391, 401, 418-419, 428->423, 468, 537-538, 543, 585, 588, 595, 601-602, 617->619, 623, 638, 660-661, 687, 690, 702, 705, 707->709, 718, 736, 739, 742->744, 750, 755, 775, 780, 792
src/jacobian/checker_operations.py                                    95      9     30      9    86%   41, 49, 123, 137, 159, 165, 170, 204, 208
src/jacobian/checker_worker.py                                       135     63     42      9    46%   56, 60, 73-97, 101-115, 127-139, 151-152, 154, 157, 165, 168, 177-178, 189-193, 201-202, 205->exit
src/jacobian/cli.py                                                  102     11     20      4    86%   32, 57, 122, 149, 166-179, 232
src/jacobian/composition.py                                           35      7      6      2    73%   33->38, 36-37, 40-41, 43, 51-52
src/jacobian/contracts/_verification_rules.py                         22      2     16      2    89%   25, 34
src/jacobian/contracts/capabilities.py                               240     19     74     19    88%   38, 40, 42, 90, 92, 141, 143, 184, 188, 196, 207, 225, 242, 248, 260, 351, 358, 362, 400
src/jacobian/contracts/certified_snf.py                               76      5     16      5    89%   42, 48, 76, 132, 144
src/jacobian/contracts/checkers.py                                   167     14     50     14    87%   99, 130, 134, 143, 168, 170, 183, 193, 195, 269, 277, 294, 319, 326
src/jacobian/contracts/combinatorics.py                              494     64    192     56    82%   93, 119-120, 170, 266, 349, 438, 458, 471, 473, 505, 546, 548, 550, 552, 555, 566, 571, 584, 587, 591, 593, 610, 612, 614, 617, 632, 634, 636, 640, 642, 672, 713, 723, 735, 780, 782, 784, 786, 788, 793, 840, 843, 850, 904, 915, 917, 919, 923, 959, 965, 977, 980-991, 1028, 1035, 1054, 1124, 1138
src/jacobian/contracts/evidence.py                                    47      1      4      1    96%   52
src/jacobian/contracts/exact_domain_verification.py                   65      2     10      2    95%   100, 147
src/jacobian/contracts/finite_coverage.py                            152     14     30     14    85%   53, 57, 76, 84, 104, 106, 108, 125, 132, 165, 169, 185, 233, 235
src/jacobian/contracts/finite_sets.py                                 31      3      6      3    84%   24, 46, 48
src/jacobian/contracts/formal_datasets.py                            226     13     74     13    91%   44, 183, 268, 270, 272, 278, 280, 284, 294, 296, 300, 307, 314
src/jacobian/contracts/geometry.py                                   243     33     80     26    80%   42, 55, 61, 78-86, 109, 195, 203, 212, 214, 226, 228, 241, 244, 247, 256, 281, 286, 312-314, 324, 327, 330, 339, 356, 358, 373, 382, 391, 394
src/jacobian/contracts/graph_coloring.py                              59     10     24     10    76%   28, 31, 36, 81, 83, 85, 87, 91, 100, 102
src/jacobian/contracts/graph_composition.py                           92      2     18      2    96%   182, 184
src/jacobian/contracts/graph_degree_sequence.py                       76      8     18      8    83%   19, 56, 62, 69, 76, 102, 104, 106
src/jacobian/contracts/graph_invariant_operations.py                 136     17     38     16    80%   40, 60, 69, 104, 116, 118, 125, 144, 146, 166, 175, 196, 198, 200, 207-209
src/jacobian/contracts/graph_invariants.py                           192     23     52     23    81%   91, 93, 95, 106, 122, 124, 127, 131, 135, 155, 172, 174, 178, 189, 213, 215, 217, 219, 237, 239, 244, 275, 280
src/jacobian/contracts/graph_isomorphism.py                          109      8     32      8    89%   25, 27, 107, 109, 111, 113, 118, 124
src/jacobian/contracts/graph_optimization.py                         268     38     82     28    79%   34, 54, 82, 110, 118, 159, 190, 192, 199, 205, 210, 219, 225, 244, 306, 309, 311, 337, 345, 347, 357, 359, 361, 373, 388, 390, 396, 404, 437-445, 524-532
src/jacobian/contracts/graph_symmetry.py                             123     14     38     14    83%   44, 56, 60, 67, 70, 74, 101, 109, 181, 201, 242, 248, 254, 284
src/jacobian/contracts/jacobian_syzygy.py                            161     32     72     31    72%   26, 29, 32, 43, 72, 76, 83, 86, 89, 93, 100, 113, 125, 130, 132, 153, 155, 157, 163, 165, 167-168, 177, 183, 202, 233, 238, 244, 248, 252, 266, 272
src/jacobian/contracts/lean.py                                       258     19     60     20    88%   160, 219->221, 226, 242, 244, 257, 260, 314, 318, 353, 380, 382, 384, 389, 399, 401, 409, 411, 415, 424
src/jacobian/contracts/lean_exploration.py                           146     22     32      6    75%   22, 94, 137-139, 152, 182, 185-201
src/jacobian/contracts/lean_metavariable_fields.py                    62      3      2      0    92%   93-97
src/jacobian/contracts/lean_proof_axioms.py                           58      4     18      4    89%   34, 66, 68, 72
src/jacobian/contracts/lean_proof_edit.py                             53      5     14      5    85%   23, 26, 53, 58, 67
src/jacobian/contracts/lean_proof_state_inspect.py                    37      5      6      1    77%   51-55
src/jacobian/contracts/lean_statement.py                             116      8     40      9    89%   42, 88, 96, 98, 99->103, 104, 106, 108, 152
src/jacobian/contracts/lean_term_apply.py                             31      9      8      0    56%   35-49
src/jacobian/contracts/linear.py                                      61      2     12      2    95%   53, 124
src/jacobian/contracts/matrices.py                                    39      4     14      4    85%   51, 53, 76, 78
src/jacobian/contracts/matrix_lattice.py                              34      3      6      3    85%   30, 32, 37
src/jacobian/contracts/matrix_operations.py                          222     17     54     17    88%   96, 100, 153, 171, 239, 241, 243, 260, 262, 280, 284, 289, 291, 296, 343, 376, 378
src/jacobian/contracts/nullstellensatz.py                            165     19     40     19    81%   33, 41, 47, 63, 65, 91, 97, 101, 121, 128, 130, 189, 199, 202, 205, 207, 232, 241, 279
src/jacobian/contracts/number_theory.py                              315     30     94     30    85%   175, 225, 227, 246, 269, 275, 287, 349, 388, 390, 392, 419, 441, 448, 566, 568, 574, 584, 587, 592, 613, 617, 630, 637, 649, 669, 685, 688, 690, 692
src/jacobian/contracts/polynomial_expressions.py                     238     18     66     15    89%   160, 204, 216, 265-266, 268-269, 306-307, 344, 352, 361, 426, 437, 463, 469, 497, 501
src/jacobian/contracts/polynomial_intervals.py                       123     11     26     11    85%   58, 68, 73, 79, 105, 110, 114, 157, 162, 166, 209
src/jacobian/contracts/polynomial_operations.py                      292     27     68     27    85%   58, 85, 97, 108, 116, 176, 178, 183, 195, 224, 249, 275, 277, 287, 304, 306, 322, 327, 335, 340, 401, 435, 448, 450, 491, 493, 495
src/jacobian/contracts/polynomial_positivity.py                       92      4      8      4    92%   57, 66, 70, 143
src/jacobian/contracts/polynomial_systems.py                          87      6     16      6    88%   35, 42, 95, 97, 139, 143
src/jacobian/contracts/polynomials.py                                752     72    238     72    85%   81, 127, 145, 163, 167, 186, 192, 261, 288, 295, 320, 333, 389, 391, 393, 395, 397, 399, 401, 423, 495, 497, 499, 501, 510, 512, 515, 517, 519, 545, 548, 550, 560, 613, 615, 617, 619, 622, 624, 699, 701, 733, 735, 771, 778, 883, 982, 986, 996, 1014, 1018, 1043, 1047, 1054, 1083, 1087, 1119, 1121, 1156, 1158, 1160, 1164, 1168, 1171-1175, 1199, 1206, 1231, 1235, 1267, 1271, 1280
src/jacobian/contracts/polytope.py                                    74      8     22      8    83%   34, 67, 69, 71, 92, 95, 97, 106
src/jacobian/contracts/posets.py                                     307     31    104     32    85%   51, 67, 132, 143, 147, 149, 163, 165, 170, 171->173, 185, 266, 270, 287, 314, 329, 332, 335, 337, 340, 381, 415, 480, 539, 541, 543, 545, 566, 569, 578, 627, 630
src/jacobian/contracts/probability.py                                413     41    138     41    85%   46, 56, 104, 108, 134, 200, 206, 211, 218, 241, 244, 248, 256, 267, 274, 289, 294, 307, 393, 395, 399, 413, 415, 436, 459, 470, 472, 522, 556, 581, 597, 609, 613, 619, 694, 722, 736, 787, 808, 814, 823
src/jacobian/contracts/projective_geometry.py                        140     22     48     20    78%   36, 39, 72, 92-93, 98, 103, 105, 126, 128, 130, 155, 159, 165, 172, 174, 207, 210, 213, 219, 224, 233
src/jacobian/contracts/provider_measurements.py                       48      1     12      1    97%   82
src/jacobian/contracts/results.py                                     80      3     16      3    94%   74, 76, 121
src/jacobian/contracts/sat.py                                        353     25     92     23    89%   65, 76, 78, 80, 161, 296, 300, 328, 332, 351, 373, 433, 437, 468, 470, 472, 507, 509, 511, 560, 564, 566, 585, 679-680
src/jacobian/contracts/sequences.py                                   24      1      0      0    96%   52
src/jacobian/contracts/smt.py                                        259     24     90     19    88%   60-61, 74-75, 80, 91, 96, 108, 111, 150, 160, 164, 183, 188, 195-196, 200, 203, 211, 270, 323, 398, 400, 402
src/jacobian/contracts/topology.py                                   372     41    124     41    83%   66, 95, 100, 102, 119, 142, 164, 166, 249, 273, 279, 286, 293, 319, 369, 374, 392, 395, 405, 407, 436, 440, 443, 449, 504, 506, 513, 520, 541, 544, 546, 557, 585, 603, 624, 676, 684, 697, 718, 747, 751
src/jacobian/contracts/universal_algebra.py                          230     35     74     23    76%   32, 34, 36, 43, 50, 56, 59, 76, 89, 92, 105, 110, 136, 162, 187, 207, 209, 232, 237, 302-330, 332, 348-349, 353
src/jacobian/contracts/urls.py                                        12      2      4      2    75%   14, 16
src/jacobian/contracts/validated_analysis.py                         160     21     52     16    80%   62, 64, 89, 91, 96, 98, 138, 141, 144, 162, 170, 173, 175, 218, 222-230, 274-286
src/jacobian/domains/_certified_snf.py                               110     21     38     10    76%   39, 43-46, 50, 64, 76, 84, 100-111, 146, 159, 193, 225, 230, 234
src/jacobian/domains/analysis/operations.py                           42      6      8      3    82%   64, 69, 113, 123-128
src/jacobian/domains/analysis/protocol.py                             35      2      4      2    90%   43, 45
src/jacobian/domains/analysis/worker.py                               30     30      4      0     0%   3-74
src/jacobian/domains/arithmetic/operations.py                         96      8     14      2    89%   60-63, 115, 139-140, 179-180
src/jacobian/domains/combinatorics/difference_sets.py                 77      2     28      2    96%   130, 157
src/jacobian/domains/combinatorics/operations.py                      98      3     10      3    94%   72, 192, 195
src/jacobian/domains/finite_fields/bundle.py                         103      3     12      3    95%   142, 157, 240
src/jacobian/domains/geometry/operations.py                          176     39     44      5    75%   81, 115-117, 144-147, 162, 197, 212-215, 225-228, 242-243, 251-263, 267-273, 323-327, 407
src/jacobian/domains/graph_optimization/chromatic_number.py           19      2      4      0    91%   30-31
src/jacobian/domains/graph_optimization/distance_matrix.py            22      2      0      0    91%   63-64
src/jacobian/domains/graph_optimization/exact_search.py              143      1     38      1    99%   85
src/jacobian/domains/graph_optimization/finite_optimization.py        55      1     20      1    97%   74
src/jacobian/domains/graph_optimization/hamiltonian_path.py           49      3     12      1    93%   30, 87-94
src/jacobian/domains/graph_optimization/independence.py               14      2      0      0    86%   28-29
src/jacobian/domains/graph_optimization/invariants.py                164     24     34      7    84%   84-85, 163, 173, 245-246, 292-293, 318, 339-340, 345-346, 362-370, 381-399, 430
src/jacobian/domains/graph_optimization/minimum_spanning_tree.py      53      3      8      1    93%   128, 164-171
src/jacobian/domains/graph_optimization/operations.py                 69      3     26      3    94%   99, 138, 208
src/jacobian/domains/matrix_lattice/conversions.py                    24      2      4      2    86%   27, 69
src/jacobian/domains/matrix_lattice/hnf.py                            45      8     10      5    76%   42, 71, 98, 104, 114, 120, 130-131
src/jacobian/domains/matrix_lattice/hnf_protocol.py                   32      2      4      1    92%   38, 60
src/jacobian/domains/matrix_lattice/hnf_worker.py                     33     33      6      0     0%   3-94
src/jacobian/domains/matrix_lattice/lattice.py                        42      7     12      5    78%   66, 97, 109, 115, 123-124, 130
src/jacobian/domains/matrix_lattice/lll_protocol.py                   41      3      6      2    89%   45, 67, 69
src/jacobian/domains/matrix_lattice/lll_worker.py                     59     59     12      0     0%   3-123
src/jacobian/domains/matrix_lattice/operations.py                     69      2     10      2    95%   124, 172
src/jacobian/domains/number_theory/discrete_logarithm.py              36      5      8      3    82%   78, 90, 96, 105-106
src/jacobian/domains/number_theory/discrete_logarithm_worker.py       23     23      4      0     0%   3-61
src/jacobian/domains/number_theory/divisibility_operations.py         49      2      4      2    92%   49, 78
src/jacobian/domains/number_theory/factorization.py                   73      6     14      5    87%   76, 92, 100->102, 103, 111, 188-189
src/jacobian/domains/number_theory/factorization_kernels.py           33     33      8      0     0%   3-83
src/jacobian/domains/number_theory/factorization_worker.py            30     30     14      0     0%   3-91
src/jacobian/domains/number_theory/modular_operations.py              52      1     12      1    97%   46
src/jacobian/domains/optimization/operations.py                       36      8      4      2    75%   59, 64, 74-92
src/jacobian/domains/optimization/worker.py                           57     57      8      0     0%   3-165
src/jacobian/domains/polynomial/_support.py                           30      6      2      0    75%   40-42, 143-148
src/jacobian/domains/polynomial/conversions.py                        26      1      8      1    94%   37
src/jacobian/domains/polynomial/elementary_operations.py              95      1      8      1    98%   201
src/jacobian/domains/polynomial/groebner.py                           40      4     10      3    86%   79, 91, 97, 112
src/jacobian/domains/polynomial/groebner_protocol.py                  37      6     10      2    74%   44-49
src/jacobian/domains/polynomial/groebner_worker.py                    20     20      2      0     0%   3-56
src/jacobian/domains/polynomial/jacobian_syzygy.py                   101      4     24      3    94%   79-80, 157, 224->236, 230
src/jacobian/domains/polynomial/operations.py                         60      9      8      2    78%   53, 63, 190-213
src/jacobian/domains/polynomial_nullstellensatz/core.py              128      9     20      4    90%   100-102, 137-138, 222-223, 238, 252
src/jacobian/domains/polynomial_nullstellensatz/singular.py          200     43     72     14    73%   122, 147, 151, 159, 162, 170, 176, 186, 194, 246-265, 287, 292, 305-319, 398, 403, 405-411, 449, 464, 479-492
src/jacobian/domains/posets/operations.py                            127      2     28      2    97%   65-66, 162->157
src/jacobian/domains/probability/gaussian_inputs.py                   50      4     14      4    88%   39, 43, 68, 85
src/jacobian/domains/probability/operations.py                       162      1     48      1    99%   70, 328->325
src/jacobian/domains/projective_geometry/arrangements.py              47      5      6      1    89%   40-41, 112, 153-154
src/jacobian/domains/rational_linear/operations.py                    67     23     22     10    63%   52, 75, 94, 99, 101, 125, 131, 133, 135-148, 166, 172, 174, 179-192
src/jacobian/domains/rational_linear/protocol.py                      56      4      4      1    92%   95, 122-123, 128
src/jacobian/domains/rational_linear/worker.py                        57     57     16      0     0%   3-145
src/jacobian/domains/sequences/operations.py                         124      3     20      3    96%   85, 201, 209
src/jacobian/domains/topology/operations.py                          159      8     52      8    92%   113, 168, 180, 217, 220, 294, 417, 456
src/jacobian/eval/graph_oracle.py                                    111    111     76      0     0%   3-192
src/jacobian/eval/telemetry.py                                       355     21    134     10    93%   74-75, 76->69, 115->113, 117->113, 119-120, 159-161, 188, 208-209, 256-257, 487-497, 521, 646, 680, 753-754, 756
src/jacobian/exact_domain_checkers.py                                261     18     76     14    90%   96, 125, 197, 203, 208, 330, 372, 385, 392-398, 412, 465, 550, 809, 815, 821-822
src/jacobian/finite_coverage.py                                      135      5     20      3    95%   205, 261-262, 447, 463
src/jacobian/graphs/artifacts.py                                      53      1      2      1    96%   114
src/jacobian/graphs/atlas.py                                          20      1      4      1    92%   49
src/jacobian/graphs/atlas_search.py                                   88      4     26      4    93%   211, 239, 255, 260
src/jacobian/graphs/composition.py                                   138     21     26      2    80%   235, 339-340, 431, 438-447, 455-467, 477
src/jacobian/graphs/construction.py                                   44      1      2      1    96%   129
src/jacobian/graphs/degree_sequence.py                                83      5     16      3    92%   99-100, 243, 251, 267
src/jacobian/graphs/invariants.py                                    163     11     64      7    91%   110-111, 213-215, 228, 259, 298, 323, 332, 336
src/jacobian/graphs/isomorphism.py                                   134      8     26      5    92%   163, 203, 378-379, 414-415, 454, 474->470, 482
src/jacobian/graphs/neighborhood_independence.py                      66      4      6      2    92%   96-97, 109, 120
src/jacobian/implementation.py                                       187     68     80     11    59%   29, 32, 35-37, 52-65, 97-98, 117, 123, 126, 129-138, 145, 154, 158, 171, 208-234, 240-245, 254-255, 266, 274-277
src/jacobian/lean_frontend/_state_validation.py                       26     11      4      0    50%   50-90
src/jacobian/lean_frontend/artifacts.py                               30      8      0      0    73%   45, 71, 95-111, 118
src/jacobian/lean_frontend/declaration_operations.py                  27      4      0      0    85%   55-56, 71-72
src/jacobian/lean_frontend/declaration_protocol.py                    98      3     14      3    95%   38, 44, 50
src/jacobian/lean_frontend/declarations.py                           716    245    224     55    62%   141, 145, 152-153, 207->209, 218, 255-256, 258, 266, 268, 270, 272-278, 289, 298-299, 301, 317-318, 323, 356-359, 365, 382-384, 412-437, 445-499, 502-509, 512-530, 533-537, 540-578, 581-585, 619, 631, 653, 656, 661, 675-676, 694-696, 698-699, 724-731, 734, 759-760, 805, 812, 816->818, 833-863, 880, 898, 916-926, 942-957, 968, 983, 997, 1017-1022, 1026-1032, 1055-1057, 1081, 1094-1095, 1112, 1123-1124, 1143, 1155-1156, 1166-1169, 1186-1187, 1192, 1212, 1215-1216, 1218, 1233-1238, 1245, 1259-1264, 1271, 1275-1276, 1278, 1284, 1298, 1305, 1312, 1319, 1354, 1355->1379, 1360, 1367, 1368->1355, 1376-1378, 1413, 1429, 1448, 1458, 1464, 1467-1468, 1476, 1482
src/jacobian/lean_frontend/diagnostics.py                            127     36     52     10    69%   142-154, 188, 218-232, 266, 301, 339, 342, 362, 376, 400-436, 446
src/jacobian/lean_frontend/exploration.py                            179     90     36      7    47%   85-86, 154-217, 240, 242, 245, 267->269, 277, 298, 302-303, 314, 331, 349, 355, 404-437, 446-479, 496-538, 546-548, 552
src/jacobian/lean_frontend/metavariable_fields.py                     65     42      8      0    32%   58-60, 84, 87-255, 271
src/jacobian/lean_frontend/premise_retrieval.py                       52     13      4      0    70%   129-201
src/jacobian/lean_frontend/proof_axioms.py                           222     48     64     14    75%   169-170, 182, 192-195, 210, 278, 280, 284, 298-299, 301-302, 320, 326-327, 331-342, 361, 417-418, 447, 456-457, 488, 492-500, 507-514, 538, 548-550
src/jacobian/lean_frontend/proof_edit.py                              58     29      2      0    48%   53-75, 94-97, 126, 129-246, 261
src/jacobian/lean_frontend/proof_state.py                            127     58     28      6    48%   132, 138-139, 161, 163-197, 220, 239, 247, 273, 277, 308-310, 337-470
src/jacobian/lean_frontend/proof_state_inspect.py                     54     11      0      0    80%   89-133, 152
src/jacobian/lean_frontend/repl.py                                   271    207     96      5    19%   49-54, 67-72, 86-94, 105-132, 143-178, 183-184, 187-224, 227-233, 239, 245, 251, 254-270, 273-277, 284, 293-294, 307-314, 326-333, 349-365, 383-390, 399-427, 430-457, 477-478, 484-492, 496-504, 508-516, 521, 530
src/jacobian/lean_frontend/service.py                                123     93     28      1    21%   48-59, 75-179, 191-202, 207-224, 227-234, 242-274
src/jacobian/lean_frontend/statement.py                              268    170     46      1    32%   94-95, 150-178, 193-196, 213-248, 270-274, 289-300, 315-351, 359-368, 374-391, 397-407, 411-426, 432-440, 444-452, 465-474, 478-481, 489-490, 499-504, 508-511, 552, 653, 656-745, 796, 799-873, 890
src/jacobian/lean_frontend/term_apply.py                              36     16      2      0    53%   47-48, 102, 105-166, 185
src/jacobian/math/finite_fields/_flint.py                             41      7     12      6    75%   23, 26, 37, 50, 53, 77, 84
src/jacobian/math/finite_fields/_sympy.py                             30      1      4      1    94%   89
src/jacobian/math/finite_fields/operations.py                         94      9     30      5    87%   58, 60, 84, 219, 244, 276-280
src/jacobian/math/finite_fields/values.py                            366     56    128     43    80%   38, 48, 55, 57, 81, 134, 139, 170, 172, 176, 201, 203, 214, 238, 240, 248, 285, 305, 310, 316, 346, 348, 353, 355, 360, 380, 387, 414, 419, 438, 441, 450, 452, 454, 456, 461, 479, 488, 507, 509, 511, 516, 518, 525, 554, 575, 578, 580, 586, 591, 621, 632, 655, 666, 701, 720
src/jacobian/math/graphs/_independence_z3.py                          41      5     12      4    83%   31, 49, 101-108
src/jacobian/math/graphs/_networkx.py                                 52      5     22      5    86%   18, 20, 47, 51, 57
src/jacobian/math/graphs/independence.py                              54      8     18      7    76%   51, 77, 79, 81, 83, 92-94
src/jacobian/math/graphs/values.py                                    34      6     14      6    75%   32, 34, 39, 41, 56, 58
src/jacobian/math/matrices/_sympy.py                                  57      5     20      4    88%   20, 32, 54, 61, 94
src/jacobian/math/polynomials/_sympy.py                               44      1      6      1    96%   46
src/jacobian/math/polynomials/operations.py                           44      1      4      1    96%   29
src/jacobian/math/prime_field_linear_algebra.py                       99      3     44      3    96%   31, 33, 118
src/jacobian/math/real_quadratic.py                                   84      9     20      9    83%   34, 36, 38, 42, 63, 74, 107, 127, 137
src/jacobian/operation_bindings.py                                    65      5      8      3    89%   47, 65, 67, 226-227
src/jacobian/operation_installation.py                               134      4     18      2    96%   163, 266, 321-322
src/jacobian/operation_ports.py                                       50      5     24      5    86%   23, 53, 57, 79, 99
src/jacobian/operation_projection.py                                  41      2     12      2    92%   28, 76
src/jacobian/operation_publication.py                                 51      4     10      2    90%   69, 82-83, 104
src/jacobian/operations.py                                            88      4     10      4    92%   27, 81, 85, 152
src/jacobian/persistence/database.py                                 217     24     58     12    86%   91-94, 109-111, 135, 168, 226, 262, 282, 298, 312, 323->327, 329, 341-345, 347->353, 350-352, 361-362, 366
src/jacobian/persistence/decoding.py                                  35      2      2      0    95%   80-81
src/jacobian/persistence/migrations.py                                65      3     22      3    93%   358, 472, 488
src/jacobian/persistence/state_health.py                              74     13     20      7    79%   35, 66, 101, 112-113, 123, 136, 171, 184, 219, 237, 254-255
src/jacobian/polynomial_expression_capabilities.py                    84      8     20      4    87%   123, 178-179, 199, 259-262, 267
src/jacobian/polynomial_expressions.py                                81     12      8      4    82%   91-92, 99, 112-113, 163-164, 171, 182-183, 190, 194
src/jacobian/polynomial_interval_capabilities.py                     155      4     14      3    96%   319-325, 431, 547->549, 595
src/jacobian/polynomial_positivity_capabilities.py                   174     11     20      3    93%   330-336, 445, 461-467, 584->586, 626-630, 694
src/jacobian/polynomial_system_capabilities.py                        99      2     12      2    96%   157, 208
src/jacobian/polynomial_system_search.py                              45      2      4      0    96%   88-89
src/jacobian/polynomials/_support.py                                 243     26     56      7    89%   117, 243-244, 259, 271-272, 283, 302-303, 318, 330-331, 351-371, 381, 551->554, 557-558, 560, 730-736
src/jacobian/polynomials/collision.py                                185      8     40      8    93%   65, 67, 84, 86, 483, 573, 620, 654
src/jacobian/polynomials/evaluation.py                               106      4      6      3    94%   226-231, 322, 384, 476->478
src/jacobian/polynomials/identity.py                                  54      2      6      3    92%   120, 240->237, 249
src/jacobian/polynomials/inverse.py                                  165     12     38      9    90%   198-199, 273, 301, 315, 330, 376-377, 386-387, 412, 683
src/jacobian/polynomials/rational_identity.py                         42      1      2      1    95%   136
src/jacobian/polytope.py                                             188     20     38     13    85%   67->69, 85, 90-96, 168, 171, 199, 211-216, 247, 253-254, 272, 274, 280, 282, 377, 421, 434->439, 678
src/jacobian/polytope_capabilities.py                                 29      1      4      1    94%   92
src/jacobian/portfolio/assembler.py                                   30      3      2      1    88%   32, 58-59
src/jacobian/portfolio/checker_installation.py                        64     25     14      1    54%   114-160, 167-174
src/jacobian/portfolio/core_installation.py                           77      3     22      1    94%   95-97
src/jacobian/portfolio/foundation_installation.py                     50      6     14      1    86%   122-131
src/jacobian/portfolio/model.py                                       29      1     14      1    95%   66
src/jacobian/portfolio/resource_installation.py                       32      2     14      1    89%   76-77
src/jacobian/portfolio/result.py                                      45      4      8      4    85%   35, 51, 53, 71
src/jacobian/process_policy.py                                        93      2     32      3    96%   70->76, 130, 148
src/jacobian/provider_measurements.py                                115     50     30      5    54%   173, 188-189, 205-227, 236, 240, 261-274, 291-294, 307-356, 371-372
src/jacobian/provider_runtime.py                                     225     34     70     14    84%   98, 123-124, 152, 158-164, 212, 215, 270-271, 309-310, 359-360, 394-395, 404, 416, 425, 431-432, 437, 447, 457-458, 474, 483-484, 506, 549, 567, 585
src/jacobian/providers/external_solver_runtime.py                     82      3     24      3    94%   71, 214, 344
src/jacobian/providers/flint_runtime.py                              122     31     22      6    74%   127-128, 171, 211, 228-229, 271-272, 314-315, 357-364, 419-420, 463-464, 504-505, 546-547, 590-591, 663, 675-676, 683, 722, 734-735, 744
src/jacobian/providers/lean_runtime.py                               139     21     40     15    80%   55, 60, 68, 71, 74, 96, 116, 121-123, 157, 160-161, 178-180, 188, 190-191, 223, 229, 234->exit, 249->253
src/jacobian/providers/loader.py                                      99      2     24      3    96%   139, 148, 196->exit
src/jacobian/providers/metadata.py                                    37      1      6      1    95%   39
src/jacobian/registry.py                                             197     17     56     12    89%   107-113, 202, 300, 305, 343, 354-355, 375, 457, 467, 482, 502, 566, 571, 627
src/jacobian/runtime/bootstrap.py                                     35      6      0      0    83%   58-63
src/jacobian/runtime/model.py                                         38     10     12      4    68%   26, 36, 42, 51-52, 54-61, 66
src/jacobian/runtime/portfolio.py                                     29      1     10      1    95%   41
src/jacobian/sat_smt/cadical.py                                      302     36    104     25    85%   92, 96, 102, 170, 191, 201, 279, 284, 331-332, 387, 391, 514, 518, 522, 565-566, 609, 629, 682, 725, 732-733, 735, 745-746, 754, 759, 761, 771, 773, 778, 790, 797, 799, 816
src/jacobian/sat_smt/cvc5.py                                         153     18     44     14    84%   83, 132-133, 145-146, 173, 284, 299, 304, 313, 370, 390, 397, 409, 451, 458, 460, 464
src/jacobian/sat_smt/cvc5_worker.py                                  124    102     32      1    15%   43-44, 48-54, 58-62, 72-89, 98-108, 118-140, 150-188, 197-227, 231
src/jacobian/sat_smt/sat.py                                          107     15     14      5    83%   104-105, 119-120, 182, 189-190, 199, 235-236, 243, 250-251, 254, 258
src/jacobian/sat_smt/sat_capabilities.py                             186     11     44      9    91%   176, 360, 431, 471, 478, 531, 579-580, 602, 655, 662
src/jacobian/sat_smt/sat_lrat.py                                     130     10     30      7    89%   127, 169-170, 195, 277, 377, 389, 392-393, 395, 400->407
src/jacobian/sat_smt/smt.py                                           77      8      8      2    88%   85-86, 100-101, 169-170, 173, 177
src/jacobian/sat_smt/smt_capabilities.py                              93      4     22      4    93%   129, 196, 249, 256
src/jacobian/schema_registry.py                                      187      4     54      5    96%   276->278, 287, 291->293, 301-302, 357
src/jacobian/storage/blobs.py                                        164     18     58     15    84%   52, 60, 63->62, 83, 87, 155, 157, 179, 191, 221, 247-248, 278-279, 293-294, 297->299, 323, 340, 342
src/jacobian/storage/errors.py                                        19      2      0      0    89%   16-17
src/jacobian/storage/identity.py                                      48      2      6      2    93%   45, 51
src/jacobian/storage/metadata.py                                     123     10     38      8    89%   133, 170, 173, 238, 242, 247, 390-391, 396, 429
src/jacobian/storage/repository.py                                   138     17     28      6    85%   60, 97-99, 218, 246-247, 270-271, 284, 292-293, 295-297, 305, 313
src/jacobian/storage/transactions.py                                 180     28     38      6    84%   68-69, 123-124, 139-141, 154-155, 164-166, 175, 177-183, 185-191, 205, 209, 218-220, 250->exit
src/jacobian/sympy_polynomial_normalization.py                       115      8     34      9    89%   84, 104, 130, 397, 415, 421, 445, 446->452, 463
src/jacobian/sympy_polynomial_protocol.py                             27      2      2      1    90%   39, 52
src/jacobian/sympy_polynomial_worker.py                               48     48     16      0     0%   3-122
src/jacobian/universal_algebra_capabilities.py                       198     10     40      3    95%   192->196, 509-510, 581-582, 690, 705-715
src/jacobian/validation_diagnostics.py                                35      1     10      1    96%   77
src/jacobian/value_references.py                                      64      3      8      2    93%   55, 101-102, 112->110
src/jacobian/verification/_helpers.py                                 47      2     14      3    92%   81, 84->exit, 114
src/jacobian/verification/checker_protocol.py                         36     10     12      2    62%   39-44, 71-74
src/jacobian/verification/executor.py                                 60      9     16      3    84%   134-137, 151, 153-157, 162-166
src/jacobian/verification/plan_builder.py                            133      6     38      6    93%   136, 208, 251, 261, 299, 450
src/jacobian/verification/service.py                                 109      1     16      1    98%   523
src/jacobian/verification_capabilities.py                             82      2      8      0    98%   181-182
src/jacobian_checkers/additive_combinatorics.py                      156     50     66     19    63%   59, 62, 74, 77, 100, 108, 138, 141, 162, 175, 202, 208, 211, 215, 218, 239, 250-263, 269, 274, 294-295, 299-308, 312-334, 369-370
src/jacobian_checkers/bound_artifacts.py                              77      7     38      7    88%   58, 69, 109, 114, 140, 163, 175
src/jacobian_checkers/certified_snf.py                               129     37     54     17    65%   39, 50, 62, 72, 78, 92, 94, 103, 116, 135, 151, 153-154, 163, 184, 191, 203, 211, 236, 248, 260-299
src/jacobian_checkers/erdos_straus.py                                 84     15     44     13    78%   29, 47, 58, 69, 71, 73, 85, 88, 90, 104, 109, 114, 121, 141-142
src/jacobian_checkers/exact_domain_operations.py                     498     86    234     86    77%   81, 88, 92, 95, 106, 112, 129, 132, 135, 138, 142, 151, 154, 164, 172, 189, 191, 202, 212, 214, 225, 236, 247, 250, 256, 289, 297, 309, 316, 340, 364, 392, 405, 421, 427, 441, 446, 448, 458, 462, 475, 478, 482, 509, 542, 548, 554, 563, 567, 575, 584, 600, 660, 688, 690, 696, 728, 730, 735, 738, 741, 743, 760, 762, 771, 773, 793, 795, 800, 804, 846, 851, 856, 860, 890, 906, 944, 986, 988, 998, 1028, 1030, 1037, 1058, 1095, 1127
src/jacobian_checkers/exact_geometry.py                              389    166    204     38    53%   48-69, 76-104, 114-143, 150-166, 170-175, 191-239, 254, 258, 268-271, 301, 307, 311, 314, 320, 326, 332, 342, 345, 348, 359, 370, 419-430, 444, 471-493, 506, 532, 576, 579, 603, 624, 629, 661, 669, 672, 689, 694, 712, 718, 739, 741, 743, 746, 756, 762, 779, 784-796, 806-812, 822-835, 841-844, 851, 877-884, 892-900, 908, 921
src/jacobian_checkers/exact_probability_operations.py                378     59    192     57    80%   66, 69, 75, 79, 82, 88, 113, 116, 122, 126, 128, 130, 136, 148, 152, 157, 177-178, 189, 192, 201, 211, 236, 239, 242, 251, 257, 275, 279, 285, 293, 304, 327, 353, 358, 377, 387, 392, 402, 405, 409, 478, 508, 531, 546, 548, 559, 567, 574, 577, 605, 631, 640, 644, 646, 649, 705, 729, 732
src/jacobian_checkers/finite_coverage.py                             153    153     70      0     0%   3-440
src/jacobian_checkers/finite_field_polynomial.py                     120     19     50     20    77%   35, 48, 53, 67, 79, 87, 109, 112, 119, 129, 140, 188, 190, 196, 207, 237, 253->264, 265, 281, 288
src/jacobian_checkers/finite_field_rank.py                           132     24     60     24    75%   29, 40, 51, 65, 70, 81, 93, 101, 109, 117, 123, 126, 146, 154, 164, 222, 230, 279, 324, 331, 348, 354, 356, 371
src/jacobian_checkers/finite_posets.py                               333     54    146     49    78%   56, 67, 98, 133, 137, 141, 148, 151, 161, 165, 168, 181, 184, 186, 197, 199, 264, 269, 274, 276, 280, 301, 305, 314, 320, 342, 344, 377, 379, 381, 411, 414, 417, 421, 451, 455, 458, 469, 498, 508, 554, 590, 644, 649, 651, 654-656, 658, 662, 671-679
src/jacobian_checkers/graph_degree_sequence.py                       152     28     74     28    75%   41, 51, 62, 74, 77, 90, 101, 113, 134, 137, 150, 158, 171, 183, 197, 209, 211, 216, 232, 247, 263, 281, 286, 294, 305, 310, 314, 318
src/jacobian_checkers/graph_exact_operations.py                      512     95    256     49    78%   85, 111, 114, 124, 138, 147, 157, 171, 178, 192, 196, 233, 271, 279, 287, 292, 298, 335, 420, 424, 440, 569, 571-580, 592, 594-603, 624, 638, 642, 649, 668, 681, 685, 689, 693, 709, 714, 799, 927, 950, 952, 980, 1037-1038, 1040, 1043->1050, 1067-1131, 1135-1156, 1165, 1182, 1197, 1232-1235, 1253, 1281
src/jacobian_checkers/graph_invariants.py                            130     23     62     23    76%   33, 44, 56, 59, 68, 77, 80, 90, 97, 124, 135, 144, 151, 159, 167, 207, 221, 239, 245, 268, 281, 287, 290
src/jacobian_checkers/graph_isomorphism.py                            52      9     20      7    78%   27, 38, 49, 52, 61, 73, 85, 172-173
src/jacobian_checkers/graph_paths.py                                 354    187    194     45    43%   24-82, 93, 96, 100, 103, 109, 112, 130, 133, 143-144, 152, 157, 175, 186, 197-209, 217, 222, 248-266, 274-317, 321, 335-337, 347-368, 375-393, 418, 421, 427, 429, 432, 434, 438, 447, 472->471, 496, 509, 511, 513, 521, 523, 530-566, 577-590, 598, 600, 602, 608, 611, 614, 627, 637, 640, 648-654, 662, 671, 685, 695
src/jacobian_checkers/graph_shrinking.py                              64     64     36      0     0%   3-102
src/jacobian_checkers/jacobian_syzygy.py                             255    255    114      0     0%   7-591
src/jacobian_checkers/lean4.py                                       358     91    136     40    69%   95, 106, 108, 116, 118, 161, 164, 178, 210, 234-235, 246, 259, 269->271, 298-299, 318, 348, 353, 355-356, 358, 362, 386, 389, 414, 417, 421-477, 492->494, 511-512, 519, 524, 529, 533->544, 541, 551-561, 576, 581-582, 609, 651, 710-713, 721-723, 731, 750, 755, 770, 772, 779, 787, 809, 812, 830, 836-837
src/jacobian_checkers/linear.py                                       83     20     40     20    67%   34, 45, 48, 63, 69, 80, 87, 89, 101, 120, 122, 124, 127, 139, 167, 169, 171, 175, 184, 192
src/jacobian_checkers/matrices.py                                    308    114    166     50    58%   39, 41, 43, 45, 55, 70, 72, 83, 92, 99, 103, 116-117, 124-132, 140-195, 209, 211, 225, 235, 271, 278, 290, 301, 309, 312, 333-334, 345, 347, 349, 360, 363, 365, 375, 384, 391, 399, 405, 409, 415, 423, 425, 437-438, 447-495, 505-507, 516, 521, 526, 535, 538, 544, 558, 562, 569, 583, 586, 595, 597
src/jacobian_checkers/matrix_normal_forms.py                         101     13     52     12    84%   37, 47, 49, 60, 83, 85, 95, 97-98, 108, 151, 175, 184
src/jacobian_checkers/nullstellensatz.py                             194     32     96     32    78%   61, 72, 75, 81, 84, 89, 104, 107, 132, 140, 184, 188, 191, 194, 209, 214, 216, 222, 227, 233, 246, 269, 274, 291, 320, 327, 329, 343, 345, 363, 375, 420
src/jacobian_checkers/polynomial_expressions.py                      329     76    160     48    73%   121, 134, 152, 155, 161, 165, 181, 194, 206, 208-218, 227, 230, 247, 266-297, 308, 311, 330-331, 355, 366, 376, 378, 380, 382, 390, 399, 410, 412, 418, 431, 440, 445-448, 453, 456, 461, 473, 476, 501, 507, 510, 549, 573, 575, 588, 593, 621, 633, 641, 659, 671, 683, 707
src/jacobian_checkers/polynomial_intervals.py                        185     29     84     29    78%   42, 51, 64, 66, 81, 83, 86, 95, 106, 109, 119, 123, 126, 133, 175, 204, 219, 234, 244, 254, 269, 283, 288, 302, 324, 333, 339, 344, 352
src/jacobian_checkers/polynomial_maps.py                             363     58    164     50    80%   36, 45, 54, 62, 78, 99, 102, 111, 125, 128, 166, 189, 199, 212, 235, 248, 259, 261, 269, 274, 282, 294-295, 303, 331, 345, 399-400, 408, 424, 431, 440, 452, 542, 590, 601, 610, 617, 624, 632, 648, 662-663, 671, 682, 698, 710, 719, 735, 765-766, 785, 798, 842, 857, 859, 872, 874
src/jacobian_checkers/polynomial_positivity.py                       250     41    114     41    77%   43, 52, 55, 65, 67, 71, 82, 84, 87, 95, 106, 109, 117, 121, 124, 131, 150, 165->162, 168, 176, 179, 183->189, 190, 263, 278, 293, 303, 313, 328, 339, 341, 346, 369, 386, 426, 435, 444, 450, 455, 463, 468, 515-516
src/jacobian_checkers/polynomial_systems.py                           87     12     34     12    80%   30, 39, 50, 53, 58, 72, 75, 109, 132, 152, 160, 176
src/jacobian_checkers/polytope.py                                    176    176     96      0     0%   3-326
src/jacobian_checkers/projective_arrangements.py                      77     77     32      0     0%   3-212
src/jacobian_checkers/rational_determinants.py                       219     91    110     25    53%   59, 72, 89, 95, 102, 112, 114, 123, 166, 168-169, 200, 202, 213, 215, 220, 235, 257, 265, 278, 283, 295, 305, 312, 315, 328, 349-353, 362-382, 388-404, 412-433, 442-455, 459-477, 483-519
src/jacobian_checkers/rational_functions.py                           87      4     38      4    94%   35, 60, 63, 68
src/jacobian_checkers/real_quadratic.py                               65     65     26      0     0%   3-136
src/jacobian_checkers/recurrence_series.py                           198     40     88     32    73%   58, 60, 65, 71, 78, 82, 85, 97, 123-124, 134, 136-144, 164, 198, 204, 218, 221, 224, 248, 285, 326, 338, 342, 358, 377, 385, 388, 391, 403, 406, 410, 440, 452, 456
src/jacobian_checkers/reject.py                                        4      4      0      0     0%   3-9
src/jacobian_checkers/sat.py                                         300     46    148     42    80%   91, 104, 119, 131, 134, 143, 153, 159, 165, 169, 183, 189, 200, 207, 235, 249, 320, 334, 340-341, 346, 361, 381, 394, 406, 431, 446, 489, 491, 501-502, 535, 537, 542, 545, 630, 632, 643, 645, 650, 665, 674, 696, 701, 723, 748
src/jacobian_checkers/sat_lrat.py                                    189     38     82     26    76%   42-43, 75, 78, 82, 85, 87, 95-96, 105-108, 119->138, 122, 130, 132, 151, 153, 156, 161, 165, 167, 171, 180-181, 189, 192, 224, 226, 255, 269, 313, 322, 352, 359, 364, 366, 368
src/jacobian_checkers/simplicial_topology.py                         430     71    202     62    78%   76, 87, 93, 96, 128, 137, 140, 144, 146, 148, 153, 158, 184, 198, 206, 220, 226, 229-231, 303, 307, 318, 321, 324, 340, 348->350, 351, 363, 366, 368, 384, 399, 472, 508, 512, 515, 518, 529, 535, 538, 546, 552, 564, 621, 659, 691, 736, 742, 786, 827, 840, 860-890, 904, 907-908, 924, 951, 959, 984, 994, 1013, 1028, 1031, 1074
src/jacobian_checkers/smt.py                                         236     60    106     28    71%   80, 93, 106-117, 121-130, 137, 140, 153-155, 161-163, 165-167, 181, 191, 194, 213, 218, 232, 248-249, 256, 259, 268, 274, 344, 363, 366-367, 391, 411, 424, 435, 438, 500, 502, 507, 510
src/jacobian_checkers/universal_algebra.py                           147     22     62     22    79%   32, 46, 57, 64, 71, 80, 117, 132, 145, 150, 152, 163, 177, 182, 192, 202, 206, 214, 216, 307, 331, 341
--------------------------------------------------------------------------------------------------------------
TOTAL                                                              38312   6835  11450   2744    78%

175 files skipped due to complete coverage.

Total coverage: 78% (threshold: 50%)

@morluto
morluto marked this pull request as ready for review August 13, 2026 18:29
@cursor

cursor Bot commented Aug 13, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@morluto
morluto merged commit 6ad9f41 into main Aug 13, 2026
29 checks passed
@morluto
morluto deleted the agent/port-real-quadratic-order-v2 branch August 13, 2026 18:30

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b707620585

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +168 to +170
difference=RealQuadraticValue(
rational_part=CanonicalRational.from_fraction(a),
radical_coefficient=CanonicalRational.from_fraction(b),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep valid input subtraction within the result contract

When two individually valid 256-digit rationals have large coprime denominators, subtracting them can produce a denominator approaching 512 digits. Constructing difference as another RealQuadraticValue then reapplies the 256-digit input bound and raises after execution, so math.run reports ADAPTER_EXECUTION_FAILED for an input accepted by RealQuadraticOrderRequest. Use a result bound closed under subtraction, or reject the cross-field size relationship during request validation before computation.

AGENTS.md reference: AGENTS.md:L203-L210

Useful? React with 👍 / 👎.

Comment on lines +141 to +143
def real_quadratic_order(
request: RealQuadraticOrderRequest,
) -> RealQuadraticOrderValue:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Expose native values instead of wire contract models

This public jacobian.math function requires a ContractModel request containing wire-format CanonicalRational values and returns another capability-bound contract model. Native callers therefore cannot compose it directly with Fraction or other computational values without constructing wire objects, contrary to the native API boundary; keep the typed kernel native and perform request/result projection in the arithmetic capability adapter.

AGENTS.md reference: AGENTS.md:L65-L72

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant