Note: This overview is edited by hand. When you add or change public names or tactics, update this file too. See BUILDING_DOCS.md.
EndObj F— The end of a functor F : Cᵒᵖ × C ⥤ DEnd.π F c— Projection from the end to F(c,c)End.lift f h— Universal property of endsEnd.map α— Functoriality of ends
CoendObj F— The coend of a functor F : C × Cᵒᵖ ⥤ DCoend.ι F c— Inclusion from F(c,c) to the coendCoend.desc f h— Universal property of coendsCoend.map α— Functoriality of coends
Lan K F— Left Kan extension of F along KRan K F— Right Kan extension of F along KLan.universal α— Universal property of left Kan extensionsRan.universal α— Universal property of right Kan extensions
BeckChevalley.Square K L M N— Commutative square of functorsBeckChevalley S— Beck–Chevalley condition for a squarebeckChevalleyIso— Beck–Chevalley isomorphism
See TACTIC_INDEX.md for every registered tactic, including variants with ! and combined tactics.
end_beta— β-style step for endsend_eta— η-style step for endsendkan_beta— Combined end/coend β-style stependkan_eta— Combined end/coend η-style step
coend_beta— β-style step for coendscoend_eta— η-style step for coends
kan_fuse— Use known universal properties for Kan extensionsbeck_chevalley!— Beck–Chevalley on a declared square
endkan_all— Run the combined pipeline
@[kan.square]— Mark a commutative square for Beck–Chevalley tactics
endkan.timeoutMs— Timeout in milliseconds (default: 2000)endkan.trace— Tracing on or off (default: false)endkan.maxSteps— Step limit (default: 200)
setTimeout ms— Set timeoutsetTrace b— Set tracingsetMaxSteps n— Set step limit
example (F : Cᵒᵖ × C ⥤ D) (c : C) :
End.lift (fun c => f c) h ≫ End.π F c = f c := by
end_betaexample (F : C × Cᵒᵖ ⥤ D) (c : C) :
Coend.ι F c ≫ Coend.desc f h = f c := by
coend_betaexample (K : C ⥤ D) (F : C ⥤ E) (hK : Full K) (hK' : Faithful K) :
Lan K F ≅ F := by
kan_fuseexample (S : BeckChevalley.Square K L M N) [BeckChevalley S] :
M ⋙ Lan L (𝟙 E) ≅ Lan K (𝟙 D) ⋙ N := by
beck_chevalley!example (F : (C × D)ᵒᵖ × (C × D) ⥤ E) :
EndObj F ≅ EndObj (fun c => EndObj (fun d => F.obj (op (c, d), (c, d)))) := by
endkan_beta
endkan_eta
simpTactics are meant for interactive proofs. Speed depends on your goal and context.
The program under rust_production can print simple health and timing messages. You do not need it to use the Lean library.