Thats a unique idea.You should consider the following idea to enhance your idea so that it would impact uniquely: Coinduction is a proof rule. It is the dual of induction. It allows reasoning about non-ll-founded structures such as lazy lists or streams and is of particular use for reasoning about equivalences. A central difficulty in the automation of coinductive proof is the choice of a relation (called a bisimulation).#R##N##R##N# present an automation of coinductive theorem proving. This automation is based on the idea of proof planning [7]. Proof planning constructs the higher level steps in a proof, using knowledge of the general structure of a family of proofs and exploiting this knowledge to control the proof search. Part of proof planning involves the use of failure information to modify the plan by the use of a proof critic [23] which exploits the information gained from the failed proof attempt.#R##N##R##N#Our approach to the problem was to develop a strategy that makes an initial simple guess at a bisimulation and then uses generalisation techniques, motivated by a critic, to refine this guess, so that a larger class of coinductive problems can be automatically verified.#R##N##R##N#The implementation of this strategy has focused on the use of coinduction to prove the equivalence of programs in a small lazy functional language which is similar to Haskell [22].#R##N##R##N# have developed a proof plan for coinduction and a critic associated with this proof plan. These have been implemented in i>CoCLAM, an extended version of i>CLAM [9], with encouraging results. The planner has been successfully tested on a number of theorems.
['Louise A. Dennis', 'Alan Bundy', 'Ian Green']
I am writing a research paper on a idea Making a productive use of failure to generate witnesses for coinduction from divergent proof attempts
[{"from": "human", "value": "I am writing a research paper on a idea Making a productive use of failure to generate witnesses for coinduction from divergent proof attempts"}, {"from": "gpt", "value": "Thats a unique idea.You should consider the following idea to enhance your idea so that it would impact uniquely: Coinduction is a proof rule. It is the dual of induction. It allows reasoning about non-ll-founded structures such as lazy lists or streams and is of particular use for reasoning about equivalences. A central difficulty in the automation of coinductive proof is the choice of a relation (called a bisimulation).#R##N##R##N# present an automation of coinductive theorem proving. This automation is based on the idea of proof planning [7]. Proof planning constructs the higher level steps in a proof, using knowledge of the general structure of a family of proofs and exploiting this knowledge to control the proof search. Part of proof planning involves the use of failure information to modify the plan by the use of a proof critic [23] which exploits the information gained from the failed proof attempt.#R##N##R##N#Our approach to the problem was to develop a strategy that makes an initial simple guess at a bisimulation and then uses generalisation techniques, motivated by a critic, to refine this guess, so that a larger class of coinductive problems can be automatically verified.#R##N##R##N#The implementation of this strategy has focused on the use of coinduction to prove the equivalence of programs in a small lazy functional language which is similar to Haskell [22].#R##N##R##N# have developed a proof plan for coinduction and a critic associated with this proof plan. These have been implemented in i>CoCLAM, an extended version of i>CLAM [9], with encouraging results. The planner has been successfully tested on a number of theorems."}]