C
Size: a a a
C
SK
S
AT
Definition halve : nat -> nat :=
nat_rect (fun _ => nat) 0 (fun n rec => n - rec).
Definition halve : nat -> nat :=
fix halve (n : nat) :=
match n with
| 0 => 0
| 1 => 0
| S (S n) => S (halve n)
end.
w
EK
AT
SK
AT
nat_rect =
fun (P : nat -> Type) (f : P 0) (f0 : forall n : nat, P n -> P (S n)) =>
fix F (n : nat) : P n :=
match n as n0 return (P n0) with
| 0 => f
| S n0 => f0 n0 (F n0)
end
AT
data Case = CaseInsensitive | CaseSensitive
data Predicate = Contains | Equals
AT
SK
AT
EK