У меня есть следующий индуктивный тип, определенный в Coq .
Inductive natlist : Type :=
| nil : natlist
| cons : nat -> natlist -> natlist.
Notation "x :: l" := (cons x l) (at level 60, right associativity).
Notation "[ ]" := nil.
Notation "[ x , .. , y ]" := (cons x .. (cons y nil) ..).
Natlist - это в основном список натуральных чисел (аналогично спискам в Python).Я пытаюсь найти объединение двух натлистов, используя приведенное ниже определение.
Definition union_of_lists : natlist -> natlist -> natlist
т. Е. Eval simpl in (union_of_lists [1,2,3] [1,4,1])
должен вернуть [1,2,3,1,4,1]
У меня есть следующие сомнения:
- Поскольку у этого определения нет аргументов, как я могу получить входные данные и обработать их?
- Что означает определениеunion_of_lists возвращают точно?Это просто natlist?
Любая помощь или советы приветствуются.