Require
Import
Lambda.Utils
.
Require
Import
Lambda.Tactics
.
Require
Import
Lambda.TPOSR.Terms
.
Require
Import
Lambda.TPOSR.Reduction
.
Require
Import
Lambda.TPOSR.Conv
.
Require
Import
Lambda.TPOSR.LiftSubst
.
Require
Import
Lambda.TPOSR.Env
.
Require
Import
Lambda.TPOSR.Types
.
Require
Import
Lambda.TPOSR.Basic
.
Require
Import
Lambda.TPOSR.Thinning
.
Require
Import
Lambda.TPOSR.Substitution
.
Require
Import
Lambda.TPOSR.RightReflexivity
.
Require
Import
Lambda.TPOSR.CtxCoercion
.
Require
Import
Lambda.TPOSR.Generation
.
Require
Import
Lambda.TPOSR.UnicityOfSorting
.
Require
Import
Lambda.TPOSR.ChurchRosser
.
Require
Import
Lambda.TPOSR.CoerceDepth
.
Require
Import
Lambda.TPOSR.CoerceNoTrans
.
Require
Import
Lambda.TPOSR.TransitivitySet
.
Implicit
Types
i
k
m
n
p
: nat
.
Implicit
Type
s
: sort
.
Implicit
Types
A
B
M
N
T
t
u
v
: lterm
.
Theorem
coerces_trans
: ∀ e
A
B
C
s
, e
|-- A
>>> B
: s
-> e
|-- B
>>> C
: s
->
e
|-- A
>>> C
: s
.
Require
Import
Lambda.TPOSR.CoerceDepth
.
Theorem
coerce_rc_depth_trans
: ∀ e
A
B
C
s
n1
n2
, e
|-- A
>-> B
: s
[n1
] -> e
|-- B
>-> C
: s
[n2
]->
∃ m
, e
|-- A
>-> C
: s
[m
].
Theorem
coerce_rc_depth_sym
: ∀ e
A
B
s
n
, e
|-- A
>-> B
: s
[n
] ->
e
|-- B
>-> A
: s
[n
].
Theorem
coerce_coerce_rc_depth
: ∀ e
A
B
s
, e
|-- A
>-> B
: s
-> ∃ n
, e
|-- A
>-> B
: s
[n
].