Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
0e8067b
Give v2 infer an application-argument inhabitance judgment.
Sep 13, 2026
e66e737
Merge origin/main into session/fierce-swift-182.
Sep 13, 2026
f9b823b
Consume find_witness for inhabitance; keep Undecidable as a counted f…
Sep 13, 2026
09e0e6e
Treat unjudgeable inhabitance as counted Undecidable, not refusal.
Sep 13, 2026
21219db
State the inhabitance rung as a decidable refusal plus counted unjudg…
Sep 13, 2026
1bc4017
Make inhabitance constructors resolve as a coproduct, not an alias.
Sep 13, 2026
f756ead
Quarantine inhabitance commentary and drop unused inhabitance surface.
Sep 13, 2026
e7673e9
Advance inhabitance zip remaining with list_tail.
Sep 13, 2026
49e1d66
Match inhabitance undecidable connectives by coproduct arm.
Sep 13, 2026
ab7097b
Consume DeclaredTypeObligation fields in the refusal diagnostic.
Sep 13, 2026
43d5d61
Match InhabitanceVerdict by arm in infer, not double-Absent.
Sep 13, 2026
c9bdf3c
Look up operator Arrow declarations with fold_node.
Sep 13, 2026
b1ba8df
Return inhabitance refusal reasons as Symbol from both if arms.
Sep 13, 2026
204c46f
Require a unique operator Arrow; zip formals with zip_map.
Sep 13, 2026
9d696d2
Cover childless Transforms on the inhabitance row.
Sep 13, 2026
cf10fae
Merge Arrow-declaration lists outside the NodeFold step.
Sep 13, 2026
ecb2a40
Refuse decidable positional arity mismatch.
Sep 13, 2026
7409d47
Judge inhabitance only on an inline Arrow operator.
Sep 14, 2026
baf6faf
State why inhabitance does not consume coercion_fold.
Sep 14, 2026
1b1cad8
Attach inhabitance commentary to functions, not type coproducts.
Sep 14, 2026
88e367a
State that application inhabitance is exact structural equality.
Sep 14, 2026
d148047
Classify Cardinality formals on the infer gather fold.
Sep 14, 2026
5f06ce5
Call the inhabitance undecidable classifier from infer.
Sep 14, 2026
d71c1e5
Build optional-carrier specimens in v2.std.inhabitance.
Sep 14, 2026
dbeebc7
Put inhabitance rung facts in a recurring-failure-mode row.
Sep 14, 2026
073086d
Escape the RFM receipt so `{declared}` is not interpolation.
Sep 14, 2026
dd06ae3
Treat TypeNode Cardinality as Bounded, like Instantiation.
Sep 14, 2026
82e8fcd
Keep Cardinality multiplicity; record unproven descent on facts.
Sep 14, 2026
d07563a
Restore Cardinality descent refuse on infer.
Sep 14, 2026
f947b6b
Name the infer Outcome reason the optional-formal RED actually sees.
Sep 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
module gunbc.recurring_failure_mode.argument_type_obligation_absent_while_the_route_advances

import std.types { NonEmptyStr }
import gunbc.recurring_failure_mode { RecurringFailureMode }

data argument_type_obligation_absent_while_the_route_advances: RecurringFailureMode = RecurringFailureMode {
identity: "argument_type_obligation_absent_while_the_route_advances" as NonEmptyStr,

receipts: [
"INVALID STATE: a reached application advances on the compiler route while the argument's derived type is not judged against the parameter's declared type, so an incompatible argument is Accepted.",

"HARM: a silent wrong program; the class DESIGN section 5 forbids. The seed instance is is_deferred_field_access_base accepting item.value on unconstrained T. The v2 instance was absence of any argument-inhabitance judgment on v2.compiler.infer.",

"DISTINGUISHING FACT: the obligation is inhabitance of produced at declared, not a second compatibility predicate. Home is v2.std.inhabitance declared_type_inhabitance, which consumes find_witness over the declared singleton with preservation_rule_exact_structural_equality_zip_fold. It does not consume v2.std.coercion coercion_fold (target-language inhabitant selection) and does not consume refinement_widening_preservation_holds (that rule preserves a value-set algebra, not application type nodes).",

"RECOGNITION RULE: an application whose argument type is derived and a distinct constructor from the formal is Accepted. The discriminating RED is v2.test.claim.compiler.infer_application_argument_inhabitance_witness_test infer_incompatible_argument_refuses_holds (Bool at an Int formal). Positive control: infer_compatible_argument_admits_holds.",

"RUNG FOUND AT, source to interpretation (v2.compiler.infer consuming declared_type_inhabitance): mechanically preventable for a structurally unequal pair of derived type nodes (Bool at Int refuses with application_argument_does_not_inhabit). Unjudgeable applications that infer reaches (ArgumentTypeNotDerived, FormalUnresolved, GenericFormal) are InhabitanceUndecidable on the Accepted path, counted, not silent. OptionalCarrier is enrolled on v2.std.inhabitance inhabitance_node_undecidable_reason (inhabitance_cardinality_type_is_optional_carrier_holds). A TypeNode Cardinality formal is not yet that counted frontier on infer: connective_multiplicity maps Cardinality to RequiresTerminationProof, so infer_node_facts Rejects before application inhabitance runs. infer_descent_witness_for_node remaps the upstream cardinality_descent_not_proven diagnostic to infer_descent_not_derived; that is the reason on the Outcome (infer_optional_formal_is_refused_for_unproven_cardinality_descent_holds). That is not inhabitance-by-widening and not 'every reached application is judged'.",

"RUNG FOUND AT, source to native emission: unclaimed. Native emission stays a declared frontier until v2.std.inhabitance is in the native 04_infer closure and infer_incompatible_argument_refuses_holds refuses on the emitted binary.",

"CEILING: structurally guaranteed on each path once every reached application is judged (frontier count zero) and a widening-legal pair is judged by preservation_rule_refinement_widening once integer value-set evidence exists on produced and declared.",

"NEXT-RUNG TRIGGER, native path: v2.std.inhabitance in the native 04_infer closure, sufficient that infer_incompatible_argument_refuses_holds refuses on the emitted binary.",

"NEXT-RUNG TRIGGER, widening: a producer supplies integer value-set evidence on produced and declared; then declared_type_inhabitance consumes preservation_rule_refinement_widening on that algebra.",

"NEXT-RUNG TRIGGER, unjudgeable applications: operator Arrow from ResolvedTree.bindings, argument type derivation, generic instantiation, and an honest TypeNode Cardinality / Optional multiplicity that does not dissolve RequiresTerminationProof without a replacement RED, sufficient that inhabitance OptionalCarrier is counted on infer (not Outcome Rejected for descent) and the InhabitanceUndecidable frontier count over reached applications is zero on both routes. The v2 arm of this class retires only when that count is zero on both routes.",

"THIS IS NOT rest_ok_over_uninhabiting_body: that class is HTTP 200 mapped as RestOk over an uninhabiting body. This class is a compiler application-argument obligation absent while the route advances.",
],

evidence: [],
}
Loading
Loading