@@ -180,7 +184,7 @@ Definition tl A (s : stream A) : stream A :=
...
@@ -180,7 +184,7 @@ Definition tl A (s : stream A) : stream A :=
CoFixpointbad:streamnat:=tl(Cons0bad).
CoFixpointbad:streamnat:=tl(Cons0bad).
]]
]]
ImaginethatCoqhadacceptedourdefinition,andconsiderhowwemightevaluate[approxbad1].Wewouldbetryingtocalculatethefirstelementinthestream[bad].However,itisnothardtoseethatthedefinitionof[bad]%``%#"#begs the question#"#%''%:unfoldingthedefinitionof[tl],weseethatweessentiallysay%``%#"#define [bad] to equal itself#"#%''%!Ofcoursesuchanequationadmitsnosinglewell-definedsolution,whichdoesnotfitwellwiththedeterminismofGallinareduction.
ImaginethatCoqhadacceptedourdefinition,andconsiderhowwemightevaluate[approxbad1].Wewouldbetryingtocalculatethefirstelementinthestream[bad].However,itisnothardtoseethatthedefinitionof[bad]"begs the question":unfoldingthedefinitionof[tl],weseethatweessentiallysay"define [bad] to equal itself"!Ofcoursesuchanequationadmitsnosinglewell-definedsolution,whichdoesnotfitwellwiththedeterminismofGallinareduction.