41 lines
1.5 KiB
Text
41 lines
1.5 KiB
Text
case is_rename.const_eq
|
|
t₁ : term,
|
|
c₁ c₂ : string,
|
|
h₁ h₂ : is_rename (term.const c₁) c₁ c₂ (term.const c₂)
|
|
⊢ term.const c₂ = term.const c₂
|
|
case is_rename.const_ne
|
|
t₁ : term,
|
|
c₁ c₂ : string,
|
|
h₁ : is_rename (term.const c₁) c₁ c₂ (term.const c₂),
|
|
h₂_hne : c₁ ≠ c₁,
|
|
h₂ : is_rename (term.const c₁) c₁ c₂ (term.const c₁)
|
|
⊢ term.const c₂ = term.const c₁
|
|
case is_rename.const_eq
|
|
t₁ : term,
|
|
c₁ c₂ : string,
|
|
h₁_hne : c₁ ≠ c₁,
|
|
h₁ : is_rename (term.const c₁) c₁ c₂ (term.const c₁),
|
|
h₂ : is_rename (term.const c₁) c₁ c₂ (term.const c₂)
|
|
⊢ term.const c₁ = term.const c₂
|
|
case is_rename.const_ne
|
|
t₁ : term,
|
|
c₁ c₁' c₂ : string,
|
|
h₁_hne : c₁ ≠ c₁',
|
|
h₁ : is_rename (term.const c₁) c₁' c₂ (term.const c₁),
|
|
h₂_hne : c₁ ≠ c₁',
|
|
h₂ : is_rename (term.const c₁) c₁' c₂ (term.const c₁)
|
|
⊢ term.const c₁ = term.const c₁
|
|
t₁ : term,
|
|
fn : string,
|
|
ts : list term,
|
|
ih :
|
|
∀ (ts₂ ts₂' : list term) (c₁ c₂ : string),
|
|
is_rename_lst ts c₁ c₂ ts₂ → is_rename_lst ts c₁ c₂ ts₂' → ts₂ = ts₂',
|
|
c₁ c₂ : string,
|
|
h₁_ts₂ : list term,
|
|
h₁_h₁ : is_rename_lst ts c₁ c₂ h₁_ts₂,
|
|
h₁ : is_rename (term.app fn ts) c₁ c₂ (term.app fn h₁_ts₂),
|
|
h₂_ts₂ : list term,
|
|
h₂_h₁ : is_rename_lst ts c₁ c₂ h₂_ts₂,
|
|
h₂ : is_rename (term.app fn ts) c₁ c₂ (term.app fn h₂_ts₂)
|
|
⊢ term.app fn h₁_ts₂ = term.app fn h₂_ts₂
|