Re: Parametrized assumptions
- To: mathgroup at smc.vnet.net
- Subject: [mg107843] Re: Parametrized assumptions
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Sun, 28 Feb 2010 04:54:06 -0500 (EST)
- Reply-to: hanlonr at cox.net
Using TagSet Clear[q] q /: q[L_, 1]^2 = q[L, 0]^2 - 1; q /: q[L_, 1] r[L_, 1] = q[L, 0] r[L, 0] - t[L]; q[w, 0]^2 - q[w, 1]^2 1 However, you will never have q[w, 1]^2 q[w, 1]^2 q[w, 0]^2 - 1 q[w, 0] r[w, 0] - q[w, 1] r[w, 1] t[w] Similarly, you will never have q[w, 1] r[w, 1] q[w, 1] r[w, 1] q[w, 0]*r[w, 0] - t[w] Or using rules (with the same limitations) Clear[q] sub = {q[L_, 1]^2 :> q[L, 0]^2 - 1, q[L_, 1] r[L_, 1] :> q[L, 0] r[L, 0] - t[L]}; q[w, 0]^2 - q[w, 1]^2 /. sub 1 q[w, 0] r[w, 0] - q[w, 1] r[w, 1] /. sub t[w] Bob Hanlon ---- Torsten Schoenfeld <kaffeetisch at gmx.de> wrote: ============= I'm having trouble using parametrized assumptions consistently. I have two objects, q and r, both having a label and an index. Now, I want that the following holds for any label L: q[L, 0]^2 - q[L, 1]^2 == 1 q[L, 0] r[L, 0] - q[L, 1] r[L, 1] == t[L] For the first condition, I find that the following works Assuming[1 == HoldPattern[q[l_, 0]^2 - q[l_, 1]^2], q[w, 0]^2 - q[w, 1]^2 // Simplify] -> 1 The HoldPattern[] is, apparently, necessary, and it also needs to be only on the right hand side. However, I can't find a way to realize the second condition. My attempts include Assuming[t[l_] == HoldPattern[q[l_, 0] r[l_, 0] - q[l_, 1] r[l_, 1]], q[w, 0] r[w, 0] - q[w, 1] r[w, 1] // Simplify] Assuming[HoldPattern[t[l_] == q[l_, 0] r[l_, 0] - q[l_, 1] r[l_, 1]], q[w, 0] r[w, 0] - q[w, 1] r[w, 1] // Simplify] Assuming[0 == HoldPattern[q[l_, 0] r[l_, 0] - q[l_, 1] r[l_, 1] - t[l_]], q[w, 0] r[w, 0] - q[w, 1] r[w, 1] // Simplify] None of these work. I assume part of the problem is that I don't understand why this doesn't work: q[w, 0] r[w, 0] - q[w, 1] r[w, 1] /. HoldPattern[q[l_, 0] r[l_, 0] - q[l_, 1] r[l_, 1]] -> a Whereas this works: q[w, 0] r[w, 0] - q[w, 1] r[w, 1] /. q[l_, 0] r[l_, 0] - q[l_, 1] r[l_, 1] -> a So, how do I go about implementing these kinds of parametrized assumptions?