triz_function_model
Check a typed TRIZ function model for harmful loops, ideality, embedded contradictions, and baseline isomorphism, returning cited, fail-closed verdicts.
Instructions
Check a TRIZ function model written as a typed wiring diagram (boxes with typed ports, wires carrying one carrier and a polarity) and analyse it: harm loops (closed loops containing a harmful or excessive function, with witness cycles), an ideality profile per resource dimension (never summed; a scalar ratio only with explicit weights), separation checks for embedded physical contradictions, and, given compare_to, a componentwise baseline-vs-concept comparison plus an isomorphism check: whether the two models share a wiring shape ignoring every id and label (a bijection preserving roles, port sides, shared carriers, wiring, ratings, and costs; decided:false if the bounded search runs out). With mpv_weights (and compare_to), comparison.mpv compares the two models over the main parameters of value only: the named cost dimensions or 'harmful', componentwise and by the explicit weighted sum, listing the other axes on which they differ; a lost deliverable still decides, and no weight is ever filled in. Each verdict cites the theorem in theory/CategoricalTriz.lean it relies on (basis). Any dangling, mis-directed, or mistyped wire, or an invalid embedded contradiction, fails closed with ok:false. Harm loops and separation read the outer wiring and the model's own contradictions only: when boxes declare an inner model, incompleteHierarchy lists them, the note says their inner loops and contradictions are not analysed, and the isomorphism check carries incompleteHierarchy: true; run triz_expand_hierarchy on each first. Loops are hypotheses about mechanism to substantiate, not findings.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | The model to analyse (the concept, when compare_to is given) | |
| box_map | No | Concept box id → baseline box id, applied before comparing deliverables; pass the boxMap a triz_transform segment, take_out, or cheap_copy returns | |
| compare_to | No | Baseline model of the same system with stable box ids | |
| mpv_weights | No | With compare_to: the main parameters of value, each a cost dimension or 'harmful' with your explicit weight. Adds comparison.mpv: the comparison over those axes only, componentwise and by the weighted sum (lower is better), with the differing axes it ignores. Never filled in, and never used for the model's scalar ratio |