Quantcast
Channel: What are the complex induction patterns supported by Agda? - Proof Assistants Stack Exchange
Viewing all articles
Browse latest Browse all 2

What are the complex induction patterns supported by Agda?

$
0
0

A question was recently asked on the Coq-club mailing list on Coq rejecting a nastily nested inductive type. We encountered a similar difficulty while trying to port code from Agda to Coq: Agda accepts the following

record Foo (x : Set -> Set) :  Set wheredata Bar : Set -> Set where  bar : Bar (Foo Bar)

while Coq rejects

Record Foo (x : Type -> Type) : Type := {}.Fail Inductive Bar : Type -> Type :=    | bar : Bar (Foo Bar).(*Non strictly positive occurrence of "Bar" in "Bar (Foo Bar)".*)

It seems like Coq does not accept nested inductive types in indices, while Agda does.

So I tried to look up what kind of complex induction pattern (induction-induction, induction-recursion, nestedness…) Agda exactly allows.I found the manual page on mutual recursion, which gives some examples, but is rather vague… Is there any more precise reference on what Agda allows and forbids? And, ideally, some hint as to why the allowed things are ok/have a semantic?


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images