Injective, surjective and isomorphic terms
Lax149335.InjectiveSurjectiveTerms · concepts/Lax149335/InjectiveSurjectiveTerms.lean · lax-149335
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
Definition 5.4. A rational term is
- injective if for some term ;
- surjective if for some term ;
- an isomorphism if both hold for the same term .
In categorical terms, an injective term is a section and a surjective term is a retraction in the category of rational terms modulo .
Concept map
Lean source view on GitHub
| 1 | import Lax149335.EquationalTheory |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Injective, surjective and isomorphic terms |
| 6 | type: definition |
| 7 | --- |
| 8 | **Definition 5.4.** A rational term is |
| 9 | |
| 10 | - *injective* if for some term ; |
| 11 | - *surjective* if for some term |
| 12 | ; |
| 13 | - an *isomorphism* if both hold for the same term . |
| 14 | |
| 15 | In categorical terms, an injective term is a section and a surjective term is a retraction |
| 16 | in the category of rational terms modulo . |
| 17 | |
| 18 | # Formalization notes |
| 19 | |
| 20 | The notions are called `ProvablyInjective`, `ProvablySurjective` and `ProvableIso`, to |
| 21 | distinguish them from injectivity and surjectivity of the denotation. |
| 22 | -/ |
| 23 | |
| 24 | namespace Lax149335.InjectiveSurjectiveTerms |
| 25 | |
| 26 | open Lax149335.Types Lax149335.Terms Lax149335.EquationalTheory |
| 27 | |
| 28 | /-- `f : A → B` is injective if `f ; f' ≡ id` for some `f' : B → A`. -/ |
| 29 | def ProvablyInjective {A B : Ty} (f : Term A B) : Prop := |
| 30 | ∃ f' : Term B A, (f ⨟ f') ≡ₜ Term.id A |
| 31 | |
| 32 | /-- `f : A → B` is surjective if `f' ; f ≡ id` for some `f' : B → A`. -/ |
| 33 | def ProvablySurjective {A B : Ty} (f : Term A B) : Prop := |
| 34 | ∃ f' : Term B A, (f' ⨟ f) ≡ₜ Term.id B |
| 35 | |
| 36 | /-- `f : A → B` is an isomorphism if `f ; f' ≡ id` and `f' ; f ≡ id` for some |
| 37 | `f' : B → A`. -/ |
| 38 | def ProvableIso {A B : Ty} (f : Term A B) : Prop := |
| 39 | ∃ f' : Term B A, (f ⨟ f') ≡ₜ Term.id A ∧ (f' ⨟ f) ≡ₜ Term.id B |
| 40 | |
| 41 | end Lax149335.InjectiveSurjectiveTerms |
| 42 |
Formalization notes
The notions are called , and , to distinguish them from injectivity and surjectivity of the denotation.
Builds on
Used by
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments