Nuprl Lemma : connex_iff_trichot

∀[T:Type]. ∀[R:T ⟶ T ⟶ ℙ].
  ((∀a,b:T.  Dec(R[a;b]))
  ⇒ (Connex(T;x,y.R[x;y])
     ⇐⇒ {∀a,b:T.  (strict_part(x,y.R[x;y];a;b) ∨ Symmetrize(x,y.R[x;y];a;b) ∨ strict_part(x,y.R[x;y];b;a))}))


Proof




Definitions occuring in Statement :  connex: Connex(T;x,y.R[x; y]),  strict_part: strict_part(x,y.R[x; y];a;b),  symmetrize: Symmetrize(x,y.R[x; y];a;b),  decidable: Dec(P),  uall: ∀[x:A]. B[x],  prop: ℙ,  guard: {T},  so_apply: x[s1;s2],  all: ∀x:A. B[x],  iff: P ⇐⇒ Q,  implies: P ⇒ Q,  or: P ∨ Q,  function: x:A ⟶ B[x],  universe: Type
Definitions unfolded in proof :  subtype_rel: A ⊆r B,  rev_implies: P ⇐ Q,  so_apply: x[s],  so_apply: x[s1;s2],  so_lambda: λ2x.t[x],  prop: ℙ,  member: t ∈ T,  all: ∀x:A. B[x],  and: P ∧ Q,  iff: P ⇐⇒ Q,  implies: P ⇒ Q,  uall: ∀[x:A]. B[x],  connex: Connex(T;x,y.R[x; y]),  symmetrize: Symmetrize(x,y.R[x; y];a;b),  strict_part: strict_part(x,y.R[x; y];a;b),  guard: {T},  or: P ∨ Q,  false: False,  not: ¬A,  decidable: Dec(P)
Lemmas referenced :  decidable_wf,  not_wf,  subtype_rel_self,  or_wf,  all_wf
Rules used in proof :  Error :inhabitedIsType,  Error :universeIsType,  Error :functionIsType,  because_Cache,  universeEquality,  instantiate,  productEquality,  hypothesis,  applyEquality,  lambdaEquality,  thin,  isectElimination,  sqequalHypSubstitution,  extract_by_obid,  introduction,  cut,  hypothesisEquality,  independent_pairFormation,  lambdaFormation,  Error :isect_memberFormation_alt,  computationStep,  sqequalTransitivity,  sqequalReflexivity,  sqequalRule,  sqequalSubstitution,  unionElimination,  dependent_functionElimination,  voidElimination,  independent_functionElimination,  functionExtensionality,  inlFormation,  inrFormation,  productElimination,  Error :inlFormation_alt,  Error :inrFormation_alt

Latex:
\mforall{}[T:Type].  \mforall{}[R:T  {}\mrightarrow{}  T  {}\mrightarrow{}  \mBbbP{}].
    ((\mforall{}a,b:T.    Dec(R[a;b]))
    {}\mRightarrow{}  (Connex(T;x,y.R[x;y])
          \mLeftarrow{}{}\mRightarrow{}  \{\mforall{}a,b:T.
                        (strict\_part(x,y.R[x;y];a;b)
                        \mvee{}  Symmetrize(x,y.R[x;y];a;b)
                        \mvee{}  strict\_part(x,y.R[x;y];b;a))\}))



Date html generated: 2019_06_20-PM-00_29_23
Last ObjectModification: 2018_10_04-PM-04_36_32

Theory : rel_1


Home Index