[Agda] Re: Yet another way Agda --without-K is incompatible with
univalence
Andreas Abel
andreas.abel at ifi.lmu.de
Fri Jan 17 14:58:44 CET 2014
Thanks for clarifying.
We are also not relieved, probably... ;-)
What does your own version of --without-K say?
Cheers,
Andreas
On 17.01.2014 14:43, Jesper Cockx wrote:
> I'm not relieved. The problem is still there.
>
>
> On Fri, Jan 17, 2014 at 2:38 PM, Andreas Abel <andreas.abel at ifi.lmu.de
> <mailto:andreas.abel at ifi.lmu.de>> wrote:
>
> Can you explain, please?
>
> You say you did not expect to be able to prove 'problem' from
> 'equiv-to-id' which you thought was univalence. Martin tells you
> that 'equiv-to-id' is a consequence of univalence. Now you are
> relieved. But still 'problem' follows from univalence. Why are you
> relieved now?
>
> Sorry, I am a bit confused now...
> Andreas
>
>
> On 17.01.2014 13:39, Jesper Cockx wrote:
>
> As Martin pointed out to me, my definition of equiv-to-id is not the
> univalence axiom, but merely a (much weaker) consequence of it.
> Thank you.
>
> Best,
> Jesper
>
>
> On Fri, Jan 17, 2014 at 12:19 PM, Jesper Cockx
> <Jesper at sikanda.be <mailto:Jesper at sikanda.be>
> <mailto:Jesper at sikanda.be <mailto:Jesper at sikanda.be>>> wrote:
>
> Dear all,
>
> Much to my own surprise, I encountered another problem with the
> --without-K option. This is on the latest darcs version of
> Agda and
> is unrelated to the termination checker. As far as I
> understand, the
> unification algorithm is applying the injectivity rule too
> liberally
> for data types indexed over indexed data. But maybe someone
> else can
> give a better explanation?
>
> === BEGIN CODE ===
>
> {-# OPTIONS --without-K #-}
>
> module YetAnotherWithoutKProblem where
>
> -- First, some preliminaries to make this file self-contained.
> data _≡_ {a} {A : Set a} (x : A) : A → Set where
> refl : x ≡ x
>
> subst : ∀ {a b} {A : Set a} {x : A} (B : (y : A) → Set b) →
> {y : A} → x ≡ y → B x → B y
> subst B refl b = b
>
> record _≃_ (A B : Set) : Set where
> constructor equiv
> field
> f : A → B
> g : B → A
> i : (x : A) → g (f x) ≡ x
> j : (y : B) → f (g y) ≡ y
>
> -- The univalence axiom.
> postulate equiv-to-id : {A B : Set} → A ≃ B → A ≡ B
>
> -- Now consider any concrete space 'mySpace' with a point
> 'myPoint'.
> -- We will show that mySpace has no structure above
> dimension 2.
> postulate mySpace : Set
> postulate myPoint : mySpace
>
> -- We define Foo in a way such that 'Foo e' is equivalent
> with 'refl
> ≡ e'.
> data Foo : myPoint ≡ myPoint → Set where
> foo : Foo refl
>
> Foo-equiv : {e : myPoint ≡ myPoint} → Foo e ≃ (refl ≡ e)
> Foo-equiv = equiv f g i j
> where
> f : {e : myPoint ≡ myPoint} → Foo e → refl ≡ e
> f foo = refl
>
> g : {e : myPoint ≡ myPoint} → refl ≡ e → Foo e
> g refl = foo
>
> i : {e : myPoint ≡ myPoint} (m : Foo e) → g (f m) ≡ m
> i foo = refl
>
> j : {e : myPoint ≡ myPoint} (i : refl ≡ e) → f (g i) ≡ i
> j refl = refl
>
> -- Here comes the real problem: by injectivity, 'Foo e' is
> a set ...
> test : {e : myPoint ≡ myPoint} → (a : Foo e) → (i : a ≡ a)
> → i ≡ refl
> test foo refl = refl
>
> -- ... hence by univalence, so is 'refl ≡ e'.
> problem : {e : myPoint ≡ myPoint} → (a : refl ≡ e) → (i : a
> ≡ a) → i
> ≡ refl
> problem = subst (λ X → (x : X) → (i : x ≡ x) → i ≡ refl)
> (equiv-to-id Foo-equiv)
> test
>
> === END CODE ===
>
> All the best,
> Jesper
>
>
>
>
> _________________________________________________
> Agda mailing list
> Agda at lists.chalmers.se <mailto:Agda at lists.chalmers.se>
> https://lists.chalmers.se/__mailman/listinfo/agda
> <https://lists.chalmers.se/mailman/listinfo/agda>
>
>
>
> --
> Andreas Abel <>< Du bist der geliebte Mensch.
>
> Theoretical Computer Science, University of Munich
> Oettingenstr. 67, D-80538 Munich, GERMANY
>
> andreas.abel at ifi.lmu.de <mailto:andreas.abel at ifi.lmu.de>
> http://www2.tcs.ifi.lmu.de/~__abel/ <http://www2.tcs.ifi.lmu.de/~abel/>
>
>
--
Andreas Abel <>< Du bist der geliebte Mensch.
Theoretical Computer Science, University of Munich
Oettingenstr. 67, D-80538 Munich, GERMANY
andreas.abel at ifi.lmu.de
http://www2.tcs.ifi.lmu.de/~abel/
More information about the Agda
mailing list