33 lines
666 B
Text
33 lines
666 B
Text
open tactic
|
|
|
|
namespace X1
|
|
|
|
inductive Foo : unit -> Type
|
|
| mk : Foo () -> Foo ()
|
|
|
|
instance (u : unit) : decidable_eq (Foo u) := by mk_dec_eq_instance
|
|
|
|
end X1
|
|
|
|
namespace X2
|
|
|
|
inductive Foo : bool -> bool -> Type
|
|
| mk₁ : Foo tt tt
|
|
| mk₂ : Foo ff ff -> Foo tt ff
|
|
|
|
instance (idx₁ idx₂ : bool) : decidable_eq (Foo idx₁ idx₂) := by mk_dec_eq_instance
|
|
|
|
end X2
|
|
|
|
namespace X3
|
|
|
|
constants (C : nat -> Type)
|
|
constants (c : Pi (n : nat), C n)
|
|
|
|
inductive Foo : Pi (n : nat), C n -> Type
|
|
| mk₁ : Pi (n : nat), Foo n (c n) -> Foo (n+1) (c (n+1))
|
|
| mk₂ : Foo 0 (c 0)
|
|
|
|
noncomputable instance (n : nat) (c : C n) : decidable_eq (Foo n c) := by mk_dec_eq_instance
|
|
|
|
end X3
|