(* File reduced by coq-bug-finder from original input, then from 13191 lines to 1315 lines, then from 1601 lines to 595 lines, then from 585 lines to 379 lines *) (* coqc version 8.5beta1 (March 2015) compiled on Mar 3 2015 3:50:31 with OCaml 4.01.0
coqtop version cagnode15:/afs/csail.mit.edu/u/j/jgross/coq-8.5,v8.5 (ac62cda8a4f488b94033b108c37556877232137a) *)
Definition transport {A : Type} (P : A -> Type) {x y : A} (p : x = y) (u : P x) : P y := match p with idpath => u end.
Definition ap {A B:Type} (f:A -> B) {x y:A} (p:x = y) : f x = f y
:= match p with idpath => idpath end.
Definition pointwise_paths {A} {P:A->Type} (f g:forall x:A, P x)
:= forall x:A, f x = g x.
Notation"f == g" := (pointwise_paths f g) (at level 70, no associativity) : type_scope.
Definition apD10 {A} {B:A->Type} {f g : forall x, B x} (h:f=g)
: f == g
:= fun x => match h with idpath => 1 end.
Definition Sect {A B : Type} (s : A -> B) (r : B -> A) := forall x : A, r (s x) = x.
Class IsEquiv {A B : Type} (f : A -> B) := BuildIsEquiv {
equiv_inv : B -> A ;
eisretr : Sect equiv_inv f;
eissect : Sect f equiv_inv;
eisadj : forall x : A, eisretr (f x) = ap f (eissect x)
}.
Notation"f ^-1" := (@equiv_inv _ _ f _) (at level 3, format "f '^-1'") : function_scope.
Class Contr_internal (A : Type) := BuildContr {
center : A ;
contr : (forall y : A, center = y)
}.
Fixpoint IsTrunc_internal (n : trunc_index) (A : Type) : Type := match n with
| -2 => Contr_internal A
| n'.+1 => forall (x y : A), IsTrunc_internal n' (x = y) end.
Class IsTrunc (n : trunc_index) (A : Type) : Type :=
Trunc_is_trunc : IsTrunc_internal n A.
Tactic Notation"transparent""assert""(" ident(name) ":" constr(type) ")" :=
unshelve refine (let __transparent_assert_hypothesis := (_ : type) in _);
[
| ( let H := matchgoalwith H := _ |- _ => constr:(H) end in
rename H into name) ].
Definition transport_idmap_ap A (P : A -> Type) x y (p : x = y) (u : P x)
: transport P p u = transport idmap (ap P p) u
:= match p with idpath => idpath end.
Section Adjointify.
Context {A B : Type} (f : A -> B) (g : B -> A).
Context (isretr : Sect g f) (issect : Sect f g).
Let issect' := fun x =>
ap g (ap f (issect x)^) @ ap g (isretr (f x)) @ issect x.
Let is_adjoint' (a : A) : isretr (f a) = ap f (issect' a).
admit. Defined.
Definition isequiv_adjointify : IsEquiv f
:= BuildIsEquiv A B f g isretr issect' is_adjoint'.
End Adjointify.
Record TruncType (n : trunc_index) := BuildTruncType {
trunctype_type : Type ;
istrunc_trunctype_type : IsTrunc n trunctype_type
}. Arguments trunctype_type {_} _.
Class IsIsomorphism {C : PreCategory} {s d} (m : morphism C s d) :=
{
morphism_inverse : morphism C d s;
left_inverse : morphism_inverse o m = identity _;
right_inverse : m o morphism_inverse = identity _
}.
Class Isomorphic {C : PreCategory} s d :=
{
morphism_isomorphic :: morphism C s d;
isisomorphism_isomorphic :: IsIsomorphism morphism_isomorphic
}.
LocalInfix"<~=~>" := Isomorphic (at level 70, no associativity) : category_scope.
Section iso_equiv_relation. Variable C : PreCategory.
GlobalInstance isisomorphism_identity (x : C) : IsIsomorphism (identity x)
:= {| morphism_inverse := identity x;
left_inverse := left_identity C x x (identity x);
right_inverse := right_identity C x x (identity x) |}.
GlobalInstance isomorphic_refl : Reflexive (@Isomorphic C)
:= fun x : C => {| morphism_isomorphic := identity x |}.
Definition idtoiso (x y : C) (H : x = y) : Isomorphic x y
:= match H in (_ = y0) return (x <~=~> y0) with
| 1%path => reflexivity x end. End iso_equiv_relation.
End Morphisms.
Notation IsCategory C := (forall s d : object C, IsEquiv (@idtoiso C s d)).
Notation isotoid C s d := (@equiv_inv _ _ (@idtoiso C s d) _).
Notation cat_of obj :=
(@Build_PreCategory obj
(fun x y => x -> y)
(fun _ x => x)
(fun _ _ _ f g => f o g)%core
(fun _ _ _ _ _ _ _ => idpath)
(fun _ _ _ => idpath)
(fun _ _ _ => idpath)
). Definition set_cat : PreCategory := cat_of hSet. SetImplicitArguments.
LocalOpenScope morphism_scope.
Section Grothendieck. Variable C : PreCategory. Variable F : Functor C set_cat.
Record Pair :=
{
c : C;
x : F c
}.
LocalNotation Gmorphism s d :=
{ f : morphism C s.(c) d.(c)
| morphism_of F f s.(x) = d.(x) }.
Definition identity_H s
:= apD10 (identity_of F s.(c)) s.(x).
Definition Gidentity s : Gmorphism s s. Proof. exists 1. apply identity_H. Defined.
Definition Gcategory : PreCategory. Proof.
unshelve refine (@Build_PreCategory
Pair
(fun s d => Gmorphism s d)
Gidentity
_
_
_
_); admit. Defined. End Grothendieck.
Lemma isotoid_1 {C} `{IsCategory C} {x : C} {H : IsIsomorphism (identity x)}
: isotoid C x x {| morphism_isomorphic := (identity x) ; isisomorphism_isomorphic := H |}
= idpath.
admit. Defined. GeneralizableAllVariables.
Section Grothendieck2.
Context `{IsCategory C}. Variable F : Functor C set_cat.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.