Axiom A : Prop.Axiom R : A->A->Prop.Axiom Rstar: A->A->Prop.Axiom Rstar': A->A->Prop.Axiom coherence: A->A->Prop.Axiom Hyp1:(x:A)(P:A->Prop)((y:A)((z:A)(R y z)->(P z))->(P y))->(P x).Axiom Hyp2:(x:A)(y:A)(z:A)(R x y)->(R x z)->(coherence y z).

(* Specifications: *)
Theorem Rstar_reflexive: (x:A)(Rstar x x).
Theorem Rstar_R: (x:A)(y:A)(z:A)(R x y)->(Rstar y z)->(Rstar x z).
Theorem Rstar_transitive: (x:A)(y:A)(z:A)(Rstar x y)->(Rstar y z)->(Rstar x z).
Theorem Rstar'_reflexive: (x:A)(Rstar' x x).
Theorem Rstar'_R: (x:A)(y:A)(z:A)(R x z)->(Rstar z y)->(Rstar' x y).
Theorem Rstar'_Rstar: (x:A)(y:A)(Rstar' x y)->(Rstar x y).
Theorem Rstar_Rstar': (x:A)(y:A)(Rstar x y)->(Rstar' x y).
Theorem coherence_intro : (x:A)(y:A)(z:A)(Rstar x z)->(Rstar y z)->(coherence x y).
Lemma Rstar_coherence : (x:A)(y:A)(Rstar x y)->(coherence x y).
Lemma coherence_sym: (x:A)(y:A)(coherence x y)->(coherence y x).
Theorem caseRxy: (x:A) ((u:A) (R x u) ->(y:A)(z:A)(Rstar u y)->(Rstar u z)->(coherence y z)) ->(y:A) (z:A) (Rstar x y) ->(Rstar x z) ->(u:A)(R x u)->(Rstar u y)->(coherence y z).
Theorem Ind_proof : (x:A) ((u:A) (R x u) ->(y:A)(z:A)(Rstar u y)->(Rstar u z)->(coherence y z)) ->(y:A)(z:A)(Rstar x y)->(Rstar x z)->(coherence y z).
Theorem Newman : (x:A)(y:A)(z:A)(Rstar x y)->(Rstar x z)->(coherence y z).