coq


Break “forall” hypothesis with conjunctions up into components?


I've the following hypotheses:
H : forall m n : nat,
f 0 n = S n /\ f (S m) 0 = f m 1 /\ f (S m) (S n) = f m (f (S m) n)
My goal is to break it up into it components. However, trying intros m n in H or destruct H doesn't work. How do I proceed?
I would like something like H0 : f 0 n = S n, H1 : f (S m) 0 = f m 1 and H2 : f (S m) (S n) = f m (f (S m) n) with m and n introduced.
You first need to specialize the hypothesis to be able to destruct it.
If you already know to which variables you want to apply this hypothesis (let's say you have n and m already introduced in your environment), you could do the following:
specialize (H n m).
destruct H as (H0 & H1 & H2).
or shorter:
destruct (H n m) as (H0 & H1 & H2).
(which also keeps the original hypothesis H, while the first solution clears it).
Finally, if you don't know yet to what you are going to apply this hypothesis, you can use the edestruct tactic:
edestruct H as (H0 & H1 & H2).
(* And you get:
H0 : f 0 ?n = S ?n
H1 : f (S ?m) 0 = f ?m 1
H2 : f (S ?m) (S ?n) = f ?m (f (S ?m) ?n)
*)

Related Links

Simplify assumption
Apply partially instantiated lemma
Using reflexivity in Coq
High-speed calculation of Coq's theorems
Topological Definition of Continuous in Coq
Reference in Coq Lists library not found
Purpose of maximal vs non-maximal implicit arguments
Idris type system properties
How to destruct/generalize over Program's rewritten match statements
Show all axioms Coq
Product Type in Coq
Coq inductive definition for the entailment property
How to make sublists in Coq?
Nested theorems in Coq
Why does this rewrite fail in the context of dependent types
How to raise exception in Coq?(in match … end)

Categories

HOME
hook
netbeans
cookies
oracle11g
drivers
fft
rsyslog
fsm
opengl-es-2.0
u-sql
quickbooks
qt-creator
windows-azure-storage
hex-editors
code-review
oxyplot
sox
core-text
blazemeter
sqlcipher
buildbot
brunch
uninstall
google-cloud-nl
directx-10
bcd
junit5
cloud-code
plsql-psp
devextreme
code-search-engine
temporary-files
estimote
skeleton-css-boilerplate
google-datalayer
network-flow
aurelia-validation
knpmenubundle
capacity
memory-alignment
log4c
xml-attribute
websitepanel
lua-5.1
pagerank
xpath-1.0
netmq
phpcas
thredds
wireshark-dissector
responsive-images
bridge.net
oxwall
neolane
xceed-datagrid
multiprocessor
oam
.aspxauth
ember-app-kit
flashvars
clipper
itmstransporter
simba
browser-detection
dmoz
runas
mongomapper
telerik-scheduler
subviews
gamequery
preference
rescale
mediarss

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App