Using the standard (type class based) transitivity tactic for more contr...

...olable proof terms. As discussed in #454.
Reconsidering, I don't think we should fake the @concat notation.
It's too much smoke and mirrors.


On Sat, Sep 6, 2014 at 3:40 AM, Jason Gross <notifications@github.com>
wrote:

> In theories/Overture.v:
>
> >
> > -Instance transitive_paths {A} : Transitive (@paths A) | 0 := @concat A.
> > +Notation concat := (transitivity (R := @paths _)) (only parsing).
> > +(* Faking the notation [@concat] does not quite work, although ssr seems to be able to do it *)
> > +Notation "'atconcat'" := (fun A => @transitivity _ (@paths A) _) (only parsing).
>
> @spitters <https://github.com/spitters>, this works fine for me:
>
> Notation concat := (transitivity (R := @paths _)) (only parsing).(** We fake the [@concat] notation. The [format] specifiers are left in so we get reasonable printing if we ever decide to remove the [only parsing]. *)(* Notation taken from ssreflect's ssrfun. *)Notation "@ 'concat' A" := (@transitivity _ (@paths A) _)
>                              (only parsing, at level 10, A at level 8, format "@ 'concat'  A").Notation "@ 'Overture.concat' A" := (@transitivity _ (@paths A) _)
>                              (only parsing, at level 10, A at level 8, format "@ 'Overture.concat'  A").Notation "@ 'HoTT.Overture.concat' A" := (@transitivity _ (@paths A) _)
>                              (only parsing, at level 10, A at level 8, format "@ 'HoTT.Overture.concat'  A").Infix "@" := (@transitivity _ _ _ _ _ _) (at level 20).
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/HoTT/HoTT/pull/459/files#r17206033>.
>