Ist das folgende eine Definition der strukturellen Induktion?
%Vor%Kann mir jemand ein Beispiel für strukturelle Induktion in Haskell geben?
Sie haben es nicht angegeben, aber ich nehme an, dass ::
die Liste concentition und bedeutet
Verwenden Sie ++
, da dies der in Haskell verwendete Operator ist.
Um dies zu beweisen, werden wir eine Induktion auf xs
durchführen. Zuerst zeigen wir, dass die
Anweisung gilt für den Basisfall (d. h. xs = []
)
und
%Vor% Nun nehmen wir an, dass die Induktions-Hypothese foldr f a (xs ++ ys) = foldr
f (foldr f a ys) xs
für xs
gilt und zeigen, dass sie für die Liste gilt
x:xs
ebenfalls.
und
%Vor% Nach unserer Induktionsannahme wissen wir, dass k1
und k2
gleich sind.
deshalb
So beweisen wir unsere Hypothese.