2014-07-14 01:53:02 +00:00
|
|
|
import standard
|
|
|
|
using num tactic
|
|
|
|
|
|
|
|
inductive inh (A : Type) : Type :=
|
|
|
|
| inh_intro : A -> inh A
|
|
|
|
|
|
|
|
instance inh_intro
|
|
|
|
|
2014-07-22 16:43:18 +00:00
|
|
|
theorem inh_bool [instance] : inh Prop
|
2014-07-14 01:53:02 +00:00
|
|
|
:= inh_intro true
|
|
|
|
|
|
|
|
theorem inh_fun [instance] {A B : Type} (H : inh B) : inh (A → B)
|
|
|
|
:= inh_rec (λ b, inh_intro (λ a : A, b)) H
|
|
|
|
|
|
|
|
definition assump := eassumption; now
|
|
|
|
|
|
|
|
set_option elaborator.local_instances false
|
|
|
|
tactic_hint [inh] assump
|
|
|
|
tactic_hint assump
|
|
|
|
|
|
|
|
theorem tst {A B : Type} (H : inh B) : inh (A → B → B)
|
|
|
|
|
|
|
|
theorem T1 {A : Type} (a : A) : inh A
|
|
|
|
|
2014-07-22 16:43:18 +00:00
|
|
|
theorem T2 : inh Prop
|