coq


What are the possible ways to define parallel composition in Coq apart from using list?


I know how to use the list to define it but expecting something other than this. Because I think it is not possible to prove associativity and commutative property if we define it using list.
Just guessing that you are asking about parallel composition of state machines. There are many ways to model them in Coq's logic, I don't know if lists are the best way...
If you define the steps as propositional relations you can compose two machines "in parallel" by creating a new inductive relation that can take a step either in one of the machines, or in the other.
This is sketch is not the most general way to write it, but hopefully it gets the idea across.
Suppose the machines can take steps between the states A, B, or C. Machine M1 behaves in one way, and M2 in another. I.e. M1 can step from A to B or C, from B to C, and from C to A. M2 can only step from A to C, and from C to A.
Inductive state : Set := A | B | C.
Inductive M1 : state -> state -> Prop :=
s1 : M1 A B | s2 : M1 A C | s3 : M1 B C | s4 : M1 C A.
Inductive M2 : state -> state -> Prop :=
ss1 : M2 A C | ss2 : M2 C A.
The we can create a new step relation for the combined system
Inductive M1M2 : (state*state) -> (state*state) -> Prop :=
| st1 s1 s1' s2: M1 s1 s1' -> M1M2 (s1, s2) (s1', s2) (* M1 takes a step *)
| st2 s1 s2 s2': M2 s2 s2' -> M1M2 (s1, s2) (s1, s2'). (* M2 takes a step *)

Related Links

Declaring a well colored digraph in coq
How to “flip” an equality proposition in Coq?
Redundant clause in match
Dependent type list concatenation in Coq
How to access the elements of a record in coq
Type hierarchy definition in Coq or Agda
Applying tactics to local subgoals of a semicolon chain in Coq
How to build an inductive type for cobordisms using Coq?
Coq: “dependent induction” inside Ltac
Omitting forall in Coq
Why can't inversion be used on a universally qualified hypothesis in Coq?
How to duplicate a hypothesis in Coq?
Why Coq doesn't allow inversion, destruct, etc. when the goal is a Type?
Working with semirings in Coq
Eliminating cases with propositions in Coq
Using sets as hyphotesis and goal in COQ

Categories

HOME
clips
activiti
q
filtering
maven-3
disassembler
ravendb
enterprise-library-5
awesome-wm
session-variables
adobe-analytics
nstableview
n-gram
uitypeeditor
apache-metamodel
oracle-coherence
nas
mustache.php
fish
dynamic-featured-image
bootstrap-material-design
atlassian-crucible
libuv
srcset
lightswitch-2013
media-queries
google-rich-snippets
uisplitview
scorm2004
http-get
perlin-noise
android-kernel
optix
mapzen
gzipstream
nomethoderror
isbn
import-from-excel
modelmapper
gpx
sencha-touch-2.3
scorm
scrollable
hibernate-tools
alphabet
pillow
epson
sqldf
angular-strap
color-picker
heidisql
database-optimization
player
angstrom-linux
simplewebrtc
lua-5.1
python-stackless
dlna
jfugue
graph-api-explorer
dereference
modalpopup
operator-precedence
pick
id3v2
wordpress-theme-customize
internet-connection
responsive-slides
p4java
jubula
yorick
seaside
cloud-connect
mysqltuner
ms-project-server-2010
dexterity
apc
opcache
spring-validator
sabredav
enterprisedb
labwindows
ticoredatasync
windows-phone-7.1.1
buildr
postgresql-performance
joyent
hamachi
krl
w3wp.exe
sudzc
gamequery
dmx512
wise
xsdobjectgen
user-friendly
ti-dsp
adrotator
aquaticprime
grid-system
commodore
lzh

Resources

Database Users
RDBMS discuss
Database Dev&Adm
javascript
java
csharp
php
android
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App