Opposites #
In this file we define a structure Opposite α containing a single field of type α and
two bijections op : α → αᵒᵖ and unop : αᵒᵖ → α. If α is a category, then αᵒᵖ is the
opposite category, with all arrows reversed.
Make sure that Opposite.op a is pretty-printed as op a instead of { unop := a } or
⟨a⟩.
Equations
- Opposite.unexpander_op x✝ = pure x✝
Instances For
The type of objects of the opposite of α; used to define the opposite category.
Now that Lean 4 supports definitional eta equality for records,
both unop (op X) = X and op (unop X) = X are definitional equalities.
Equations
- «term_ᵒᵖ» = Lean.ParserDescr.trailingNode `«term_ᵒᵖ» 1024 0 (Lean.ParserDescr.symbol "ᵒᵖ")
Instances For
The type-level equivalence between a type and its opposite.
Equations
- Opposite.equivToOpposite = { toFun := Opposite.op, invFun := Opposite.unop, left_inv := ⋯, right_inv := ⋯ }
Instances For
Equations
- Opposite.instInhabited = { default := Opposite.op default }
@[deprecated Opposite.rec (since := "2025-04-04")]
A deprecated alias for Opposite.rec.
Equations
- Opposite.rec' h X = h (Opposite.unop X)
Instances For
If X is u-small, also Xᵒᵖ is u-small.