Zulip Chat Archive

Stream: Is there code for X?

Topic: determinant via exterior algebra


Oliver Nash (Oct 28 2021 at 12:53):

To my delight, I've just discovered that we have the exterior algebra. Do we have the connection with the determinant anywhere (even in a branch)?

Eric Wieser (Oct 28 2021 at 12:58):

What statement of the connection are you looking for?

Oliver Nash (Oct 28 2021 at 12:59):

Good question, that was a bit lazy of me!

Eric Wieser (Oct 28 2021 at 12:59):

We have that the determinant is an alternating map (docs#matrix.det_row_multilinear) and that so is the map from a set of vectors to an element of the exterior algebra (docs#exterior_algebra.ι_multi)

Oliver Nash (Oct 28 2021 at 13:00):

I suppose I'd like to know that for a finite-dimensional vector space, the endomorphism on the top exterior power induced by an endomorphism of the original vector space, is multiplication by a scalar which is the determinant.

Eric Wieser (Oct 28 2021 at 13:01):

I can't help feeling you need something about the basis of an exterior algebra or something about exterior powers (branch#koszul_cx) to proceed

Eric Wieser (Oct 28 2021 at 13:01):

Since there's no canonical top exterior power element of the algebra without a canonical ordered basis, right?

Oliver Nash (Oct 28 2021 at 13:01):

Yes

Oliver Nash (Oct 28 2021 at 13:02):

In maths language, if VV has dimension nn and T:VVT : V → V then it induces a map T:VV∧ⁿT : ∧ⁿV → ∧ⁿV.

Oliver Nash (Oct 28 2021 at 13:03):

And since V∧ⁿV is one-dimensional, this map has to be multiplication by a scalar.

Eric Wieser (Oct 28 2021 at 13:03):

Yes, that's the statement I thought you were making :)

Oliver Nash (Oct 28 2021 at 13:05):

Anyway I'm not sure if I'll formalise what I need in this language even though it's how I really think about what I'm doing, and it's how I'd _like_ to formalise it. I'm still weighing my options but it's really great we have the exterior algebra, I do now remember but I had forgotten.

Eric Wieser (Oct 28 2021 at 13:06):

I think do to much we need to show that exterior_algebra R V is isomorphic to ⨁ i : fin n, (⋀[R] i, V) when findim V = n, and ⋀[R] is an exterior version of docs#pi_tensor_product

Eric Wieser (Oct 28 2021 at 13:06):

And then you can make your statement about ⋀[R] i, V

Johan Commelin (Oct 28 2021 at 13:07):

Does lean already know how to extract a scalar out of an endomorphism of a 1-dimensional vector space?

Johan Commelin (Oct 28 2021 at 13:08):

Ooh that's not what is needed. Ignore me.

Johan Commelin (Oct 28 2021 at 13:08):

We're not trying to define the determinant this way.

Oliver Nash (Oct 28 2021 at 13:10):

Eric Wieser said:

I think do to much we need to show that exterior_algebra R V is isomorphic to ⨁ i : fin n, (⋀[R] i, V) when findim V = n, and ⋀[R] is an exterior version of docs#pi_tensor_product

I see, thanks.

Eric Wieser (Oct 28 2021 at 13:11):

Note that exterior_power is in defined in a branch here: https://github.com/leanprover-community/mathlib/blob/koszul_cx/src/m4r/exterior_power.lean

Eric Wieser (Oct 28 2021 at 13:12):

That was defined before pi_tensor_product existed I think, so tensor_power probably should be changed to be pi_tensor_product over a uniform type

Oliver Nash (Oct 28 2021 at 13:16):

Thanks, that's helpful. I'm tempted to use my would-be application as an excuse to build out some missing pieces. In maths language, what I really want is the following construction of the dual basis.

Oliver Nash (Oct 28 2021 at 13:18):

Given VV of dim nn, and 1in1 ≤ i ≤ n, we can define n1VHom(V,nV)⊗^{n-1}V → Hom(V, ∧^n V) in an obvious way.

Oliver Nash (Oct 28 2021 at 13:20):

I guess the above is the invariant definition of the adjugate, and then dividing by the determinant, which lives in nV∧^nV we get the element of the dual.

Heather Macbeth (Oct 28 2021 at 13:22):

I also have wished that we had that ΛnV\Lambda^n V (defined either via the exterior algebra or via multilinear alternating maps) is 1-dimensional.

Oliver Nash (Oct 28 2021 at 13:23):

IIUC, from Eric's remarks we have the exterior algebra but we don't have iV∧^iV in master yet. So that's step one I guess.

Heather Macbeth (Oct 28 2021 at 13:32):

But it could be stated as the dimension of alternating_map R (λ i : fin (dim M), M) R.

Oliver Nash (Oct 28 2021 at 13:34):

You mean quotient?

Heather Macbeth (Oct 28 2021 at 13:35):

Sorry, alternating_map! Fixed.

Oliver Nash (Oct 28 2021 at 13:36):

Oh right, yes! That might be a sufficient workaround.

Eric Wieser (Oct 28 2021 at 13:58):

We should be able to show that alternating_map R is one-dimensional, right?

Eric Wieser (Oct 28 2021 at 13:58):

We have docs#alternating_map.module

Eric Wieser (Oct 28 2021 at 13:59):

and docs#multilinear_map.mk_pi_ring_apply and docs#multilinear_map.pi_ring_equiv look pretty close to a statement of one-dimensionality

Eric Wieser (Oct 28 2021 at 14:01):

Oliver Nash said:

Given VV of dim nn, and 1in1 ≤ i ≤ n, we can define n1VHom(V,nV)⊗^{n-1}V → Hom(V, ∧^n V) in an obvious way.

Isn't this operation basis-dependent, meaning we probably don't get anything useful by just defining it on a choice of basis?

Oliver Nash (Oct 28 2021 at 14:49):

It doesn't need a choice of basis but I think I compressed a bit too much into that sentence to make my meaning clear.

I'm saying that for each ii in the range 1in1 ≤ i ≤ n, we have a map: fi:n1VHom(V,nV)f_i : \otimes^{n-1} V \to Hom(V, ∧^nV). These maps are defined via multilinear maps f^i:×n1VHom(V,nV)\hat f_i : \times^{n-1} V \to Hom(V, ∧^nV). So we just need to define f^i\hat f_i. To do this let v1,,vnv_1, \ldots, v_n be points of VV and define:

f^(v1,,vi1,vi+1,,vn)(vi)=v1vn\hat f(v_1, \ldots, v_{i-1}, v_{i+1}, \ldots, v_n) (v_i) = v_1 \wedge \cdots\wedge v_n.

Oliver Nash (Oct 28 2021 at 14:55):

In particular for any v1,,vnv_1, \ldots, v_n we have

fi(v1vi1vi+1vn)Hom(V,nV)f_i(v_1 \otimes \cdots \otimes v_{i-1} \otimes v_{i+1} \otimes \cdots \otimes v_n) \in Hom(V, \wedge^nV)

and these form a basis of Hom(V,nV)Hom(V, \wedge^nV) if v1,,vnv_1, \ldots, v_n are a basis for VV.

Oliver Nash (Oct 28 2021 at 14:56):

So this is a way to get a basis for VV^* if we have a basis for VV because the basis of VV identifies nV\wedge^n V with the scalars.

Heather Macbeth (Oct 28 2021 at 15:08):

Eric Wieser said:

and docs#multilinear_map.mk_pi_ring_apply and docs#multilinear_map.pi_ring_equiv look pretty close to a statement of one-dimensionality

Is this the same thing? I want to consider alternating_map R (λ (i : ι), M) R, not multilinear_map R (λ (i : ι), R) M.

Oliver Nash (Oct 28 2021 at 15:11):

In my case, the above approach to the dual basis would be useful because, at the cost of obtaining a basis of Hom(V,nV)Hom(V, \wedge^nV) (instead of VV^*) we get a map ×nV×nHom(V,nV)\times^n V \to \times^n Hom(V, \wedge^nV) which is obviously smooth.

Eric Wieser (Oct 28 2021 at 15:38):

Oliver Nash said:

It doesn't need a choice of basis but I think I compressed a bit too much into that sentence to make my meaning clear.

I'm saying that for each ii in the range 1in1 ≤ i ≤ n, we have a map: fi:n1VHom(V,nV)f_i : \otimes^{n-1} V \to Hom(V, ∧^nV). These maps are defined via multilinear maps f^i:×n1VHom(V,nV)\hat f_i : \times^{n-1} V \to Hom(V, ∧^nV). So we just need to define f^i\hat f_i. To do this let v1,,vnv_1, \ldots, v_n be points of VV and define:

f^(v1,,vi1,vi+1,,vn)(vi)=v1vn\hat f(v_1, \ldots, v_{i-1}, v_{i+1}, \ldots, v_n) (v_i) = v_1 \wedge \cdots\wedge v_n.

Your v1,,vnv_1, \ldots, v_n is what I was referring to as a basis, but I guess it doesn't need to span the entire space

Eric Wieser (Oct 28 2021 at 15:39):

Heather Macbeth said:

Is this the same thing? I want to consider alternating_map R (λ (i : fin (dim M)), M) R, not multilinear_map R (λ (i : ι), R) M.

No, unfortunately they don't match, they just look somewhat close

Eric Wieser (Oct 28 2021 at 15:40):

@Oliver Nash, it sounds like what you're describing is just partially applying docs#exterior_algebra.ι_multi (linkifier is broken) with all but one argument such that it becomes a linear map in a single argument?

Eric Wieser (Oct 28 2021 at 15:43):

I think the currying is docs#multilinear_map.curry_right?

Eric Wieser (Oct 28 2021 at 15:45):

So you want something like (exterior_algebra.ι_multi R n).to_multilinear_map.curry_right v_rest which gives the linear map from v_last to the tensor algebra

Oliver Nash (Oct 28 2021 at 16:02):

Eric Wieser said:

Oliver Nash, it sounds like what you're describing is just partially applying docs#exterior_algebra.ι_multi (linkifier is broken) with all but one argument such that it becomes a linear map in a single argument?

Yes exactly. Or more precisely, that's the definition, but what I really want is that this construction agrees with docs#basis.coord smuld with the wedge of all elements.

Eric Wieser (Oct 28 2021 at 16:06):

That doesn't feel true to me; with my definition, isn't (ι_multi R n).to_multilinear_map.curry_right v_rest v_last = ι_multi R n v_all?

Eric Wieser (Oct 28 2021 at 16:07):

So there's no smul component?

Eric Wieser (Oct 28 2021 at 16:07):

I get the feeling that what you're asking for is all in the statement and we already have the pieces to prove it if you can state it.

Oliver Nash (Oct 28 2021 at 16:08):

I probably haven't said it quite right because I'm mixing formal and informal mathematics, but there is a correct precise statement which it looks like, to my surprise and delight, I can probably formalise and prove easily enough.

Oliver Nash (Oct 28 2021 at 16:09):

I have one hour left today. I'll park some other threads and see if I can formalise all this now.

Eric Wieser (Oct 28 2021 at 16:12):

The one caveat of course is that the construction I'm describing maps into the exterior algebra not the exterior powers

Oliver Nash (Oct 28 2021 at 16:12):

Oh!

Oliver Nash (Oct 28 2021 at 16:13):

That may be a problem because it's important that I know the codomain is 1-dimensional.

Oliver Nash (Oct 28 2021 at 16:13):

Still, I'll see what I can do and what might be missing.

Kyle Miller (Oct 28 2021 at 19:17):

I'm not sure if this really helps much with formalization, but one version of the determinant I like is to say for T:VVT:V\to V that detT=tr(nT)\det T=\operatorname{tr}(\wedge^nT). This is "more" basis-free since you don't need anything but finite dimensionality of nV\wedge^n V to make the definition.

Also, you can generalize: tr(kT)\operatorname{tr}(\wedge^k T) is coefficient nkn-k of the characteristic polynomial of TT (with some ±\pm).

A reason I like this is that sometimes you can factor TT as ABA\circ B with A:WVA:W\to V and B:VWB:V\to W, then get detT=tr(n(BA))\det T=\operatorname{tr}(\wedge^n(B\circ A)), which can be interesting when WW is not nn-dimensional.

Kyle Miller (Oct 28 2021 at 19:43):

So, if there were a polynomial-valued trace for graded homomorphisms (the coefficient of xkx^k is the trace when restricted to grading kk) you could (sort of) get the characteristic polynomial as the trace of T:VV\wedge T:\wedge V\to\wedge V. It's not quite the characteristic polynomial since it'd be det(xT+I)\det(xT+I) rather than det(xIT)\det(xI-T).

Eric Wieser (Oct 28 2021 at 20:50):

I'm afraid I'm confused by your notation and nT\wedge^nT vs nV\wedge^nV, since VV is a type but TT is (linear?) map.

Eric Wieser (Oct 28 2021 at 20:52):

I guess you're using the one applied to TT to mean some lift of the map to nT:nVnV\wedge^nT : \wedge^nV \to \wedge^nV?

Kyle Miller (Oct 28 2021 at 21:00):

Yeah, taking exterior powers is functorial, so I'm using n\wedge^n for both the map on objects and the map on morphisms. It comes from the induced map on tensor powers, which is also functorial.

Eric Wieser (Oct 28 2021 at 21:01):

Should we add {tensor,free,exterior,clifford}_algebra.map as a definition that simply composes with \io and calls lift, which would make nT\wedge^nT spelt exterior_algebra.map T? (I realize you're talking about exterior powers not algebras so this is only tangentially related)

Kyle Miller (Oct 28 2021 at 21:11):

Without being too familiar with this part of the library, I'd think we should have these induced maps on these algebras, and that seems like a good construction.

Eric Wieser (Oct 28 2021 at 22:03):

Probably every single lift in the library should have a corresponding map and map_equiv...

Scott Morrison (Oct 29 2021 at 07:17):

We should have all the Schur functors, in any linear symmetric monoidal category. :-)

Oliver Nash (Nov 08 2021 at 16:09):

I'm just returning to this now. Do we have:

import linear_algebra.exterior_algebra

variables (ι R M : Type*) [field R] [add_comm_group M] [module R M]
variables (n : ) (v : fin n  M)

lemma wedge_zero_iff_linear_independent :
  exterior_algebra.ι_multi R n v  0  linear_independent R v :=
begin
  sorry,
end

Eric Wieser (Nov 08 2021 at 16:12):

Yes, that's docs#alternating_map.map_linear_dependent

Eric Wieser (Nov 08 2021 at 16:12):

Or at least, modulo not_congr

Eric Wieser (Nov 08 2021 at 16:13):

Oh, I guess that's only one direction

Oliver Nash (Nov 08 2021 at 16:16):

OK thanks, it's a start anyway!

Eric Wieser (Nov 08 2021 at 16:18):

Ah, we're also missing no_zero_smul_divisors R (exterior_algebra R M)

Oliver Nash (Nov 08 2021 at 16:20):

Lean just told me this too!

Eric Wieser (Nov 08 2021 at 16:21):

Edited above with my two sorrys

Oliver Nash (Nov 08 2021 at 16:22):

Thanks. I'll see if I can fill some of this in.

Eric Wieser (Nov 08 2021 at 16:22):

I guess we probably want this first:

instance [no_zero_smul_divisors R S] : no_zero_smul_divisors R (free_algebra S X) := sorry

Oliver Nash (Nov 08 2021 at 16:23):

I'm suppose to be turning a sphere inside out and yet I'm learning about no_zero_smul_divisors :joy:

Oliver Nash (Nov 08 2021 at 16:39):

Eric Wieser said:

Ah, we're also missing no_zero_smul_divisors R (exterior_algebra R M)

Actually I'm OK thanks to no_zero_smul_divisors.of_division_ring:

import linear_algebra.exterior_algebra

variables (ι R M : Type*) [field R] [add_comm_group M] [module R M]
variables (n : ) (v : fin n  M)

lemma wedge_ne_zero_iff_linear_independent :
  exterior_algebra.ι_multi R n v  0  linear_independent R v :=
begin
  rw not_iff_comm,
  split,
  { apply alternating_map.map_linear_dependent _ _,
    exact no_zero_smul_divisors.of_division_ring, },
  { intros h₁ h₂,
    sorry },
end

Eric Wieser (Nov 08 2021 at 16:40):

(docs#no_zero_smul_divisors.of_division_ring)

Eric Wieser (Nov 08 2021 at 16:41):

That's a slightly weaker statement though, right? Presumably

instance [no_zero_smul_divisors R S] : no_zero_smul_divisors R (exterior_algebra S X) := sorry

is true, but I guess you don't care because that's not a sphere that's the wrong way out.

Oliver Nash (Nov 08 2021 at 16:41):

Basically yes.

Oliver Nash (Nov 09 2021 at 10:35):

FWIW I tried to fill in the sorry above (linear independent implies wedge non-zero) yesterday evening and it seems non-trivial. Presumably there is some clever invocation of universal properties that gets you there but I couldn't see it. I could think of three proofs but they all require a specific model. The first two work if we know know the direct sum of quotient of tensor powers by alternating map gives a model. The third one is low-tech but probably least work, and would entail directly constructing a model of the exterior algebra from an ordered basis by defining it to be the free module on all 2^n subsets and defining the appropriate product.

Oliver Nash (Nov 09 2021 at 10:36):

I'd love to do this but I think it's just too much of a detour so I'm leaving this remark here in case anyone else fancies filling this gap.

Eric Wieser (Nov 09 2021 at 19:22):

Eric Wieser said:

I guess we probably want this first:

instance [no_zero_smul_divisors R S] : no_zero_smul_divisors R (free_algebra S X) := sorry

I had a go at this, but only got as far as #10247 and gave up at:

instance [no_zero_divisors R] : no_zero_smul_divisors R (free_algebra R X) :=
λ c x h, begin
  induction x using free_algebra.induction,
  { rw [algebra.smul_def c, ring_hom.map_mul, algebra_map_eq_zero_iff] at h,
    rw algebra_map_eq_zero_iff,
    apply eq_zero_or_eq_zero_of_mul_eq_zero h, },
  { sorry },
  { sorry },
  { sorry } -- definitely false
end

Kyle Miller (Nov 09 2021 at 19:36):

I started trying to make a model for the exterior algebra as

def exterior_algebra.model (R : Type*) [field R] (n : ) := finset (fin n)  R

using the pi instance for the R-module structure but then defining multiplication via some convolution on partitions of a finite set weighted by the sign function:

def inversions : list (fin n)  
| [] := 0
| (x :: xs) := (xs.filter (λ y, y < x)).length + inversions xs

/-- in `{-1, 0, 1}`; `0` if they have an element in common, otherwise from parity of transpositions to put the union of `s` and `t` in order  -/
def sign (s t : finset (fin n)) :  :=
let xs : list (fin n) := s.sort (),
    ys : list (fin n) := t.sort ()
in if s  t =  then (-1) ^ inversions (xs ++ ys) else 0

def partitions (b : model_basis R n) : finset (model_basis R n × model_basis R n) :=
finset.univ.filter (λ p, disjoint p.1 p.2  b = p.1  p.2)

def mul (x y : model R n) : model R n := λ b,
 p in partitions b, sign p.1 p.2 * x p.1 * y p.2

I'm giving up for now. Something that would need to be proved for associativity of the multiplication is

lemma sign_assoc (s t u : finset (fin n)) :
  sign s t * sign (s  t) u = sign s (t  u) * sign t u

as well as some additional lemmas to reassociate sums over partitions.

https://gist.github.com/kmill/a341402abba64f9d8788dd5c1e5ca82b

Kyle Miller (Nov 09 2021 at 19:38):

From a universal property point of view, I guess a concrete model is a way to get "invariants" for elements of the universal object, since you have a map from it to the model and can infer things about elements by looking at their images.

Eric Wieser (Nov 09 2021 at 19:48):

That only works as a model of an exterior algebra over a finite dimensional space, right?

Eric Wieser (Nov 09 2021 at 19:49):

This paper has a nice model of exterior algebras that also works for Grassmann-Cayley algebras, but again only for finite-dimensional ones

Kyle Miller (Nov 09 2021 at 19:53):

Yeah, it's true it's only for finite-dimensional M, but it can still be useful for showing wedge products of linearly independent lists are nonzero since you can extend the list into a basis for M and send everything else to zero in exterior_algebra.model R n.

The model can be fixed to work for infinite-dimensional M by changing the definition of the model to use an arbitrary totally ordered indexing set (rather than fin n) and making it be finitely supported functions.

Oliver Nash (Nov 09 2021 at 20:17):

Kyle Miller said:

I started trying to make a model for the exterior algebra as
...
https://gist.github.com/kmill/a341402abba64f9d8788dd5c1e5ca82b

Oh cool! It would be great to get this gap filled one way or another, and I agree there are various ways to make this handle the infinite-dimensional case too. FWIW, another possible route to a proof (that linear independent implies wedge non-zero) just occurred to me which should work using the model of the exterior algebra that we have taken as our definition (namely a quotient of the tensor algebra).

Oliver Nash (Nov 09 2021 at 20:19):

Specifically if we could fill this in:

import linear_algebra.exterior_algebra
import linear_algebra.pi_tensor_product

variables (R M : Type*) [field R] [add_comm_group M] [module R M]

def alternating_map.to_exterior_hom {n : } (f : alternating_map R M R (fin n)) :
  exterior_algebra R M →ₗ[R] R :=
sorry

Oliver Nash (Nov 09 2021 at 20:21):

then given a linearly-independent family v, we can use it to define an f above which will evaluate to 1 on exterior_algebra.ι_multi R n v which must mean exterior_algebra.ι_multi R n v is non-zero.

Oliver Nash (Nov 09 2021 at 20:22):

But the only way I can see to define alternating_map.to_exterior_hom is to start all the way back at free_algebra. Anyway.

Eric Wieser (Nov 12 2021 at 15:18):

In #10255 I'm only a few sorries away from showing tensor_algebra R M ≃ₐ[R] ⨁ n, ⨂[R]^n M, which might help a little when working with the exterior_algebra

Eric Wieser (Jun 17 2022 at 15:36):

Oliver Nash said:

But the only way I can see to define alternating_map.to_exterior_hom is to start all the way back at free_algebra. Anyway.

Here's an outline of how to define this that I think would work:

  • Invoke docs#clifford_algebra.foldr with codomain (Π i : fin n.succ, alternating_map R M A (fin i)), ie tuples of alternatings maps of increasing degree
    • Start the fold with x = ![0, 0, 0, ..., f]
    • The recursive step should send v, ![x1, x2, ..., xn] to ![x2.curry_left v, x3.curry_left v, ..., 0]
      • This satisfies the requirement that applying the recursive step twice should give zero, as (g.curry_left v).curry_left v = 0 and we're inserting zeros on the LHS
  • Invoke the alternating_map R M A (fin 0) term on the empty tuple to extra the term A.

Eric Wieser (Jun 17 2022 at 15:38):

I spent a while thinking about how to apply foldr in clever ways in #14790

Eric Wieser (Jun 17 2022 at 16:16):

#14802 adds some of the machinery needed to implement that

Eric Wieser (Jun 17 2022 at 18:09):

This strategy turns out to be cursed because (x i).curry_left v is of type alternating_map R M N (fin ↑(i.succ))not alternating_map R M N (fin (succ ↑i)), and for reasons that escape me, src#fin.succ is defined such that docs#fin.coe_succ is not true by rfl

Reid Barton (Jun 17 2022 at 18:40):

Oh because of the pattern match. I imagine it would be fine to redefine fin.succ to move the pattern match into the components.

Eric Wieser (Jun 17 2022 at 18:55):

The same applies for pretty much all the definitions about fin

Reid Barton (Jun 17 2022 at 19:05):

equiv used to have a bunch of definitions like this too and changing them to constructor-of-(pattern matches) didn't have any downsides (besides making the definitions somewhat less readable).

Reid Barton (Jun 17 2022 at 19:06):

In Lean 4, eta for structures should make this mostly irrelevant.

Eric Wieser (Jun 17 2022 at 19:28):

I fought through the pain in #14803

Eric Wieser (Jun 17 2022 at 19:29):

It's annoying that what looked like a fairly neat recursion scheme has turned into a dependently-typed mess

Eric Wieser (Jun 18 2022 at 13:15):

I was able to replace fin n with nat and all the pain went away

Eric Wieser (Jun 25 2022 at 09:53):

docs#exterior_algebra.lift_alternating now exists (but isn't in the docs yet), from which your alternating_map.to_exterior_hom follows straightforwardly; now what was it that we wanted it for again?

Oliver Nash (Jun 26 2022 at 21:19):

I wanted this (or something close at least) because I wanted to prove that barycentric coordinates were smooth without having to choose a basis. In the end I caved in and proved the result by choosing coordinates and using determinants: docs#affine_basis.det_smul_coords_eq_cramer_coords

Oliver Nash (Jun 26 2022 at 21:21):

The point is that if you let coordinates take values in the top exterior power instead of scalars then you obviate the need to divide by a determinant (except at the very end) but for this all to work I needed more basic facts about exterior algebras than we had at the time.

Eric Wieser (Jun 26 2022 at 21:24):

Probably extending a basis on the vector space to a basis on the exterior algebra should be next on my todo list

Oliver Nash (Jun 26 2022 at 21:25):

That would certainly be worth having!

Oliver Nash (Jun 26 2022 at 21:26):

Or you could go crazy and do the whole thing again but for Weyl algebras + symmetric algebra instead of Clifford algebras + exterior algebra.

Oliver Nash (Jun 26 2022 at 21:26):

(don't do this: these are much less important)

Eric Wieser (Jun 26 2022 at 21:26):

It's annoying that we seem to have to rebuild everything from scratch for each one of these

Eric Wieser (Jun 26 2022 at 21:27):

(I know little abotu Weyl/symmetric algebras, but I assume one is a special case of the other?)

Oliver Nash (Jun 26 2022 at 21:27):

Indeed, it is partly to raise this point that I mention this.

Oliver Nash (Jun 26 2022 at 21:28):

A Weyl algebra is sort of a Clifford algebra but with a skew-symmetric form instead of symmetric. And when you take the zero form you get the symmetric algebra.

Oliver Nash (Jun 26 2022 at 21:28):

(which are polynomials without having to choose a basis)

Eric Wieser (Jun 26 2022 at 21:29):

To some extent we might be shooting ourselves in the foot by saying "the fact that the clifford algebra is a quotient of the tensor algebra is an implementation detail"

Eric Wieser (Jun 26 2022 at 21:29):

Since that fact is precisely the thing that's shared by these four algebras

Oliver Nash (Jun 26 2022 at 21:31):

Well I think we should allow ourselves to use this model if it makes a proof easier but the fact that this model is actually our implementation should be an implementation detail.

Oliver Nash (Jun 26 2022 at 21:31):

(That might just amount to not hiding our implementation.)


Last updated: Dec 20 2023 at 11:08 UTC