coq


Simple inversion using custom inversion


I'm working with a dependent type that models forests (lists of trees). A tree has an input element and list of output elements (t : tree a v) where v is a list.
Then a forest has a list of inputs and a list of outputs, the essential production says
forest_cons: forall a v x w, tree a v -> Forest x w -> Forest (a :: x) (v ++ w)
where v x w are lists and a is an element.
This production is 'on the left' and I need to do it on the right, so I wrote a custom induction tactic for this purpose called Forest_rev_ind. When I go to use it on a forest, I can use simple inversion, or inversion using Forest_rev_ind, but I cannot do both. Coq simply fails to recognise the command. If I do only inversion using Forest_rev_ind then the parameters of the forest are not adjusted.
I need to use simple inversion to make sure that the parameters in the type are properly adjusted, and I need to use the custom tactic for logical reasons in the proof. Any suggestions?
[If this question does not conform to the required standards here, please let me know and I can re-submit the question with improvements.]

Related Links

From an Inductive predicate to list A -> list A -> bool
Weakening hypothesis without a cut
Rewriting at the type level
Port a Coq lemma over Z to a similar lemma over nat
Coq fixpoint defintion numerated by natural numbers.(type of (n+1)'s type depends on (n)'s type)
`No more subgoals, but there are non-instantiated existential variables` in Coq proof language?
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

Categories

HOME
twitter
client
openlayers
openstack
reflection
office365api
alfresco
read-eval-print-loop
youtube-dl
jsp-tags
tizen-web-app
packages
baqend
datastax-java-driver
convolution
bs4
portia
append
adfs
handsontable
phaser
telephony
pythonanywhere
shared-hosting
orleans
functional-testing
accessor
java-7
angular2-aot
chromebook
kannel
jspm
windowbuilder
lightswitch-2013
javascriptcore
google-cloud-endpoints-v2
catel
subset-sum
http-referer
restlet
bitbucket-pipelines
web-mining
mixture-model
hilbert-curve
uft-api
ws-security
mapzen
estimote
eclipse-gef
outlook-2013
qsslsocket
dds
hls.js
dotnetzip
rdfs
kbuild
cudafy.net
gcsfuse
word-vba-mac
vmware-tools
merge-conflict-resolution
firebaseui
asp.net5
itextpdf
browser-link
jms2
icu4j
collapse
metaclass
feedback
fouc
operation
generic-programming
ami
p2
jsonpickle
issuu
neolane
cloud-connect
c18
access-rights
google-cloud-save
drools-planner
dmoz
reddot
assembly-loading
joyent
yui-datatable
celltable
lpeg
sudzc
ext3
ncqrs
fixed-width
adrotator
thread-local-storage
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