Comments (2)
@jdchristensen After thinking about this for a bit I actually don't think I know how to prove function extensionality for a finite domain. Even for the empty type, I don't know how to show two functions from the empty type are equal without assuming funext.
It would seem then if we wanted matrices to compute like this, then we will have to introduce funext everytime we prove something with an equality.
from coq-hott.
It might still work out well, replacing =
by ==
for statements about vectors and matrices. But it would be pretty radical, so I'm not sure if we want to go there. But so many operations on vectors are naturally expressed componentwise, and would then compute definitionally. map
would just become postcomposition, and iterated map
would definitionally commute with composition of functions. I guess a summary is that some =
would have to be replaced by ==
(or use funext), while many others would be replaced by definitional equality.
I checked how the Coq standard library does it, and it uses the inductive family approach to defining vectors, which still has the property that nth
doesn't definitionally commute with map
.
The current approach isn't that bad, just requiring frequent use of rewrite entry_Build_Vector
.
from coq-hott.
Related Issues (20)
- Use ViCaR to visualize terms in monoidal categories HOT 3
- dune frequently making full builds HOT 9
- Tensor products of modules
- Add break hints to =, ==, $==, $->
- Add `_ $== _ :> _` notation exposing the underlying type of homs
- Homological algebra lemmas HOT 3
- Spectral sequences HOT 5
- Experiment with redefining bifunctors as uncurried functors
- Work out why test/WildCat/Opposite.v is slow HOT 2
- Remove redundant fields from Ring
- Generalize lhs, lhs_V, rhs and rhs_V to all transitive relations HOT 2
- Define matrices as a collection of columns rather than a collection of rows
- General Linear group HOT 1
- Finite fields (Galois fields)
- Prime numbers
- Idempotent ring elements
- grp_pow and related things
- Tensor product of cyclic groups
- use CongruenceQuotient to define coequalizer
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from coq-hott.