4
Warum wird nicht die folgende typecheck:Warum wird in Idris keine Gleichheit mit "Minus" -Typ geprüft?
minusReduces : (n : Nat) -> n `minus` Z = n
minusReduces n = Refl
Doch wird diese typecheck fein:
plusReduces : (n : Nat) -> Z `plus` n = n
plusReduces n = Refl
Es funktioniert. Obwohl ich immer noch verwirrt bin. Es gibt eine "minus links Z = links" -Klausel, ich kann nicht sehen, wie es beim ersten Argument geteilt wird. –
Ja, aber zuerst musst du durch den 'Minus Z'-Fall fallen, um dorthin zu gelangen! Denken Sie daran, die Fälle sind bestellt. – Cactus
Interessant. Das Verhalten unterscheidet sich von impliziten Auflösungsregeln in formlos/Scala. –