Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::linear_algebra::IsLinearOperator Concept Referenceexport

A linear operator: a (callable) IsArrow that additionally preserves the semimodule structure (the right-S-semimodule-hom law above — sound over any semiring, no commutativity assumed). More...

Concept definition

template<typename F>
A type that knows its own Domain (A) and Codomain (B), objects it maps between: called at the domain'...
Definition morphism.cppm:168
A linear operator: a (callable) IsArrow that additionally preserves the semimodule structure (the rig...
Definition matnxn.cppm:388
constexpr bool is_linear_operator_v
Opt-in: F is a linear operator — a semimodule homomorphism, additive and scalar-equivariant on the ma...
Definition matnxn.cppm:359

Detailed Description

A linear operator: a (callable) IsArrow that additionally preserves the semimodule structure (the right-S-semimodule-hom law above — sound over any semiring, no commutativity assumed).

What this concept reifies (and what it does not). As code, IsLinearOperator<F> is exactly IsArrow<F> plus the opt-in linearity trait — a callable arrow (Domain/Codomain + a call operator, which is what makes Mat(S) an IsArrow) that is declared linear. The wider reading IsLinearOperator ⟹ IsFunction ⟹ IsRelation ⟹ IsArrow is the conceptual chain, not a direct concept subsumption: the relational IsFunction<R,A,B> / IsRelation<S,T1,T2> are predicates over a Set<pair> carrier, a different shape from this unary callable arrow. The bridge is the graph: graph(f) (:relational, via arrow_as_relation) IS the IsFunction / IsRelation, so the chain is reified through that adapter, not by making IsLinearOperator require the relational concepts directly. (Linearity itself is a law over all inputs — uncheckable — hence the opt-in trait, not a computed refinement.)

FIXME(#787): once Mat(S) carries a dagger inverse, IsUnitary ⟹ IsIsomorphism becomes real; FIXME(#301): invertibility via determinant/adjugate; FIXME(#442): the law set that survives when S is not a field.