(**Inthisbook,Ihavebeenfollowinganunusualstyle,whereproofsarenotconsideredfinisheduntiltheyare"fully automated,"inacertainsense.SEachsuchtheoremisprovedbyasingletactic.SinceLtacisaTuring-completeprogramminglanguage,itisnothardtosqueezearbitraryheuristicsintosingletactics,usingoperatorslikethesemicolontocombinesteps.Incontrast,mostLtacproofs"in the wild"consistofmanysteps,performedbyindividualtacticsfollowedbyperiods.Isitreallyworthdrawingadistinctionbetweenproofstepsterminatedbysemicolonsandstepsterminatedbyperiods?
(**Inthisbook,Ihavebeenfollowinganunusualstyle,whereproofsarenotconsideredfinisheduntiltheyare%``%#"#fully automated,#"#%''%inacertainsense.Eachsuchtheoremisprovedbyasingletactic.SinceLtacisaTuring-completeprogramminglanguage,itisnothardtosqueezearbitraryheuristicsintosingletactics,usingoperatorslikethesemicolontocombinesteps.Incontrast,mostLtacproofs%``%#"#in the wild#"#%''%consistofmanysteps,performedbyindividualtacticsfollowedbyperiods.Isitreallyworthdrawingadistinctionbetweenproofstepsterminatedbysemicolonsandstepsterminatedbyperiods?
Towriteareflectiveprocedureforthisclassofgoals,wewillneedtogetintotheactual"reflection"partof"proof by reflection."Itisimpossibletocase-analyzea[Prop]inanywayinGallina.Wemust%\textit{%#<i>#reflect#</i>#%}%[Prop]intosometypethatwe%\textit{%#<i>#can#</i>#%}%analyze.Thisinductivetypeisagoodcandidate:*)
Towriteareflectiveprocedureforthisclassofgoals,wewillneedtogetintotheactual%``%#"#reflection#"#%''%partof%``%#"#proof by reflection.#"#%''%Itisimpossibletocase-analyzea[Prop]inanywayinGallina.Wemust%\textit{%#<i>#reflect#</i>#%}%[Prop]intosometypethatwe%\textit{%#<i>#can#</i>#%}%analyze.Thisinductivetypeisagoodcandidate:*)