Zulip Chat Archive
Stream: general
Topic: Cubical HoTT Library
Namdak Tonpa (Jan 07 2019 at 11:04):
Greetings to everybody! TWIMC, Ground Zero, cubical base library embedded into Lean 3.4.1: https://github.com/groupoid/lean
Ports to other cubical type checkers: https://cubical.systems
Gabriel Ebner (Jan 07 2019 at 21:10):
It's exciting to see other variants of HoTT with new implementations in Lean. You're probably aware of this, but the reason we're using the @[hott]
attribute in https://github.com/gebner/hott3 is because otherwise this kind of HoTT in Lean is inconsistent. Concretely, the @[hott]
attribute checks that we're not using large elimination for the built-in equality type, which allows us to prove that all paths between two points are equal:
import ground_zero.theorems.ua universes u hott theory open ground_zero.structures ground_zero.ua def all_hset (α : Sort u) : hset α := by intros a b p q; cases p; cases q; refl noncomputable def inconsistent : empty := by apply universe_not_a_set; apply all_hset
Uranus Testing (Jan 08 2019 at 03:52):
Yes you are right. There is another place where we can get an inconsistency—ground_zero.support.inclusion. With it we can get a proof that generalized circle (or one step truncation, https://homotopytypetheory.org/2015/07/28/constructing-the-propositional-truncation-using-nonrecursive-hits/) is a prop. But without it we can’t get a right recursors for HITs that were constructed directly from quotients because quot.sound uses built-in equality type.
Uranus Testing (Jan 08 2019 at 04:20):
Quotients require equality type in Prop: https://github.com/leanprover/lean/blob/ceacfa7445953cbc8860ddabc55407430a9ca5c3/src/kernel/quotient/quotient.cpp#L61, so we cannot do init_quotient with our (ground_zero.types.eq) equality type.
Last updated: Dec 20 2023 at 11:08 UTC