## Mercurial > cpdt > repo

### comparison src/Equality.v @ 488:31258618ef73

Find changesets by keywords (author, files, the commit message), revision
number or hash, or revset expression.

Incorporate feedback from Nathan Collins

author | Adam Chlipala <adam@chlipala.net> |
---|---|

date | Tue, 08 Jan 2013 14:38:56 -0500 |

parents | 5025a401ad9e |

children | 7d2339cbd39c |

comparison

equal
deleted
inserted
replaced

487:8bfb27cf0121 | 488:31258618ef73 |
---|---|

626 match pf in (_ = ls) return (fhlist B ls) with | 626 match pf in (_ = ls) return (fhlist B ls) with |

627 | eq_refl => (a0, f) | 627 | eq_refl => (a0, f) |

628 end | 628 end |

629 ]] | 629 ]] |

630 | 630 |

631 The conclusion has gotten markedly simpler. It seems counterintuitive that we can have an easier time of proving a more general theorem, but that is exactly the case here and for many other proofs that use dependent types heavily. Speaking informally, the reason why this kind of activity helps is that [match] annotations only support variables in certain positions. By reducing more elements of a goal to variables, built-in tactics can have more success building [match] terms under the hood. | 631 The conclusion has gotten markedly simpler. It seems counterintuitive that we can have an easier time of proving a more general theorem, but that is exactly the case here and for many other proofs that use dependent types heavily. Speaking informally, the reason why this kind of activity helps is that [match] annotations contain some positions where only variables are allowed. By reducing more elements of a goal to variables, built-in tactics can have more success building [match] terms under the hood. |

632 | 632 |

633 In this case, it is helpful to generalize over our two proofs as well. *) | 633 In this case, it is helpful to generalize over our two proofs as well. *) |

634 | 634 |

635 generalize pf pf'. | 635 generalize pf pf'. |

636 (** [[ | 636 (** [[ |