fact: Fixpoint merge (leb : A -> A ->bool) l1 l2:= let fix merge_aux l2 {struct l2}:= match l1,l2 with | nil,_ => l2 | _,nil => l1 | a1::l1',a2::l2' => if leb a1 a2 then a1 :: merge leb l1' l2 else a2 :: merge_aux l2' end in merge_aux l2.
imports: Coq(List Wf_nat Recdef Compare_dec Arith Peano_dec Lia RelationClasses Sorting.Sorted Sorting.Permutation) hydras(DecPreOrder DecPreOrder_Instances Sort_spec)