Library Lambda.JRussell.Basic
Require
Import
Lambda.Terms
.
Require
Import
Lambda.LiftSubst
.
Require
Import
Lambda.Reduction
.
Require
Import
Lambda.Conv
.
Require
Import
Lambda.Env
.
Require
Import
Lambda.JRussell.Types
.
Implicit
Types
i
k
m
n
p
: nat
.
Implicit
Type
s
: sort
.
Implicit
Types
A
B
M
N
T
t
u
v
: term
.
Lemma
lift_sort
: ∀ n
t
s
, lift
n
t
= Srt
s
→ t
= Srt
s
.
Lemma
left_not_kind
: ∀ G
t
T
, G
|-= t
: T
→ t
≠ Srt
kind
.
Lemma
coerce_prop_prop
: nil
|-= Srt
prop
>> Srt
prop
: kind
.
Lemma
coerce_set_set
: nil
|-= Srt
set
>> Srt
set
: kind
.
Lemma
coerce_is_prop
: ∀ s
, is_prop
s
→ nil
|-= Srt
s
>> Srt
s
: kind
.
Lemma
consistency_ind
:
(∀ e
t
T
, e
|-= t
: T
→ consistent
e
) ∧
(∀ e
T
U
s
, e
|-= T
>> U
: s
→ consistent
e
) ∧
(∀ e
U
V
T
, e
|-= U
= V
: T
→ consistent
e
).
Lemma
typ_consistent
: ∀ e
t
T
, e
|-= t
: T
→ consistent
e
.
Lemma
jeq_consistent
: ∀ e
U
V
T
, e
|-= U
= V
: T
→ consistent
e
.
Lemma
coerce_consistent
: ∀ e
T
U
s
, e
|-= T
>> U
: s
→ consistent
e
.
Hint
Resolve
coerce_prop_prop
coerce_set_set
coerce_is_prop
: coc
.
Hint
Resolve
lift_sort
left_not_kind
: coc
.