text:
# Recession of galaxies

when you take such a given galaxy and it is said that you are moving away from us with a speed $v$, what do you mean really? Let me explain: is the galaxy itself which has an intrinsic velocity of recession , or the galaxy is at rest (sorry for the forcing), but is that the whole universe is expanding (see the famous example of the balloon that is inflated ) and then we see the Milky Way Galaxy get away with speed ( boh ) of 20,000 km / s? Or these 20,000 km / s are the combined action of both ( ie that the Universe is expanding and an actual speed of removal of the galaxy ) ..

Always referring to the example of a separation speed of 20,000 km / s , and pretending that someone has already replied saying that this speed is due solely to the expansion of the Universe , I can say that the 20,000 km / s are due to the sum of 10,000 km / s + 10,000 km / s speed of removal of Milky Way Galaxy and that I'm looking at a point equidistant between the two galaxies ?

• The separation speed depends on the distance of a galaxy. The real expension should be explained in terms of "speed per lightyear", so that a lightyear expands by such meters per year. Two lightyears expand by twice this amount per year... I hope I didn't make this too confusing! – PhilMacKay Mar 19 '14 at 19:52

Basically, your idea that "...the combined action of both (i.e. that the Universe is expanding and an actual speed of removal of the galaxy)." is correct. The one due to expansion might be called "comoving velocity" while the one due to the "actual" motion of the galaxy through the expanding universe is usually called the "peculiar velocity".

The observed difference in velocity between two galaxies has two components, one is the comoving velocity (due to the expansion of space) and the other is the "peculiar velocity", which is the velocity due to motion distinct from the expansion. This is pretty easy to define mathematically. If we take a coordinate system that expands at the same rate as the universe, and call the radial coordinate $\chi$ ("comoving coordinates"), then the radial coordinate in the expanding universe $r$ ("proper coordinates") is related to the comoving coordinate by the scale factor $a(t)$, which describes the size of the relative size of the universe as a function of time (so if $a(t_1)=0.5$ and $a(t_2)=1.0$ the universe is twice as large at $t_2$ than it was at $t_1$).

$$r(t)=a(t)\chi(t)$$

The "proper velocity" (e.g. the example measurements you give in your question) is, intuitively, $\dot{r}=\frac{dr}{dt}$. This breaks down into two components:

$$\dot{r} = a\dot{\chi}+\dot{a}\chi = v_\mathrm{peculiar} + v_\mathrm{comoving}$$

A galaxy will have some peculiar velocity due to its $\dot{\chi}$, and all galaxies have (sort of) random peculiar velocities which lie in some typical range. So as you look further away (bigger $\chi$), the comoving velocity begins to dominate over the comoving velocity ($\dot{\chi}$ is the same everywhere, within some scatter).

You can measure velocities relative to any reference point you choose, it is completely equivalent to say one galaxy is moving away from another at $2000\;\mathrm{km}/\mathrm{s}$ or that they are both moving away from some central point at $1000\;\mathrm{km}/\mathrm{s}$ in opposite directions. In practice we usually measure everything from our vantage point, at rest with respect to the Milky Way (the motion of the Earth around the Sun and the Sun around the galaxy are known and usually corrected for).


text:
# How can I find the limit of the integral?

Tags:
1. Aug 9, 2017

### SunGirl

1. The problem statement, all variables and given/known data
Hi! I need to find the limit when x-> +infinity of (integral from x to x^2 of (sqrt(t^3+1)dt))/x^5

2. Relevant equations

3. The attempt at a solution
The integral of (sqrt(t^3+1)dt) can only be estimated, so sqrt(t^3+1)=(t^(3/2))*sqrt(1+1/t^3) should I use the maclaurin series first for the function sqrt(1 + 1/t^3) (but f(0) = infinity and I also cant use maclaurin series for sqrt(t^3+1) as t is infinity) and then take integral for the first several elements? please help, I don`t understand how should I solve this problem.
P.S. Sorry for my bad English :/

File size:
2.3 KB
Views:
27
2. Aug 9, 2017

### Dick

Have you thought about trying to apply l'Hopital's theorem?

3. Aug 9, 2017

### Gigaz

You need neither Maclaurin nor l'Hopital, this question is much simpler.
For very large x, the integral must be essentially the integral over t^(3/2) (Though you may want to find a solid reasoning for that, for example with a Taylor series). The rest is very simple.

4. Aug 9, 2017

### SunGirl

Thank you very much!) Such a simple solution)

format: plain


text:
# 10.7 Estimate the total cost and cost per pound of reinforcing steel for a concrete slab...

Fizer Pharmaceutical paid $78 million on January 2, 2021, for 6 million shares of Carne Cosmetics common stock. The investment represents a 25% interest in the net assets of Carne and gave Fizer the ability to exercise significant influence over Carne’s operations. Fizer received dividends of ... 5 answers ##### 2 . What would be the intensity level of a 52-decibel sound after being amplified 10 thousand times? dB 2 . What would be the intensity level of a 52-decibel sound after being amplified 10 thousand times? dB... 1 answer ##### A single slit diffraction pattern shown above. The light used to make the pattern has a... A single slit diffraction pattern shown above. The light used to make the pattern has a wavelength of 521 nm and the screen is 1.8 m from the slit. If the slit has a width 4 mm, what is the width w of the central maximum in cm? _____??? Please help solve this with work shown! Thanks! 初。... 5 answers ##### 14. 5= (xy,z) |x-3co50 < 0 < 2T y-3sine z-Z <2 < 2 find surface area of S 14. 5= (xy,z) |x-3co50 < 0 < 2T y-3sine z-Z <2 < 2 find surface area of S... 5 answers ##### QUESTION 7 produced by the electrolysis of molten Caclz: Elemental calcium is needed to cause the electrolysis? Whatis the minimum voltageRReduction Half Reaction ka 2+ +2e 3 Ca El2 2e 2cl" 4.23Vred 12.87 V 1,36 v-0.45 V1,51 V41.36 V2.87 V QUESTION 7 produced by the electrolysis of molten Caclz: Elemental calcium is needed to cause the electrolysis? Whatis the minimum voltage RReduction Half Reaction ka 2+ +2e 3 Ca El2 2e 2cl" 4.23V red 12.87 V 1,36 v -0.45 V 1,51 V 41.36 V 2.87 V... 1 answer ##### Advanced Management Accounting. Struggling to answer this question. Please help to solve this. Thank you QUESTION... Advanced Management Accounting. Struggling to answer this question. Please help to solve this. Thank you QUESTION 2 Rapture Sdn Bhd manufactures three perfumes: Sweetie, Cherry and Lovely. The selling prices and the marginal cost of each product are as follows: Sweetie Cherry Lovely RM RM RM Selling... 1 answer ##### Propose a synthetic route from the starting material to the product 3. 1,3-butadiene → CEN Ó... propose a synthetic route from the starting material to the product 3. 1,3-butadiene → CEN Ó EN H-... 5 answers ##### A reaction that is spontaneous at low temperature and becomesnonspontaneous at high temperature has a Î”HÂ° thatis ____ andÎ”SÂ°that is_____.a. + , -b. +, +c. -, +d. -, - A reaction that is spontaneous at low temperature and becomes nonspontaneous at high temperature has a Î”HÂ° thatis ____ and Î”SÂ°that is_____. a. + , - b. +, + c. -, + d. -, -... 5 answers ##### Student Name:Problem 2: A communications satellite orbiting the earth has solar panels that completely absorb all sunlight incident upon them: The total area A of the panels is 1Om? The intensity of the sun's radiation incident upon the earth is about /=1.4kW/m?. Suppose this is the value for the intensity of sunlight incident upon the satellite'$ solar panels. What is the total solar power P absorbed by the panels? What is the force F on the panels exerted by radiation pressure from t
Student Name: Problem 2: A communications satellite orbiting the earth has solar panels that completely absorb all sunlight incident upon them: The total area A of the panels is 1Om? The intensity of the sun's radiation incident upon the earth is about /=1.4kW/m?. Suppose this is the value for ...
##### Average Velocity and Average Speed
Compute your average velocity in the followingtwo cases.(a) You walk 72.2m at a speed of 1.22 m/s and then run 72.2 m at a speed of 3.05 m/s along a straighttrack. m/s(b) You walk for 1.17 min at a speedof 1.22 m/s and then run for 1.17 minat 3.05 m/s along a straight track. m/s...
##### 1. A line in the spectrum of atomic mercury has a wavelength of 254 nm. When...
1. A line in the spectrum of atomic mercury has a wavelength of 254 nm. When mercury emits a photon of light at this wavelength, the frequency of this light is 2. What is the energy of a photon of blue light that has a wavelength of 453 nm? 3. What is the wavelength of light that is emitted when an ...
##### The state education commission wants to estimate the fraction of tenth grade students that have reading...
The state education commission wants to estimate the fraction of tenth grade students that have reading skills at or below the eighth grade level. In an earlier study, the population proportion was estimated to be 0.22 How large a sample would be required in order to estimate the fraction of tenth g...
##### Which of the following structures is conserved in all living organisms and points to a common origin?a. All living organisms have mitochondria that produce energy.b. All living organisms store genetic material in DNA/RNA.c. All living organisms use the energy from sunlightd. All living organisms have a nucleus.
Which of the following structures is conserved in all living organisms and points to a common origin? a. All living organisms have mitochondria that produce energy. b. All living organisms store genetic material in DNA/RNA. c. All living organisms use the energy from sunlight d. All living organ...
##### You have taken your date to fine Italian restaurant_ they serve YOu While you wait for the main course green tossed salad. Since the conversation titillating - You stare salad bowl and notice that has been sprinkled with some pepper; sea salt; parmnesun cheese and this greenish viscous liquid that smells like olive oil. You notice the lighr refraction through some ofthe oil drops (when you should have been notieing the rellection of light from your date beautiful eyes) and start thinking about w
You have taken your date to fine Italian restaurant_ they serve YOu While you wait for the main course green tossed salad. Since the conversation titillating - You stare salad bowl and notice that has been sprinkled with some pepper; sea salt; parmnesun cheese and this greenish viscous liquid that s...


text:
# Analysis of community ecology data in R

David Zelený

### Site Tools

en:non-hier_r

Section: Numerical classification

## K-means (non-hierarchical classification)

### R functions

• kmeans - performs K-means clustering on raw data matrix (samples x species). The function is a bit not well documented, so the use requires attention. The first argument, x, should be matrix (or data frame) of species composition, with samples in rows and species in columns. Argument centers could be either integer (number of clusters) or a vector with cluster centres.


text:
# Tag Info

40

In version 10.1, I've built something like Spelunk into GeneralUtilities. To use it, run Needs["GeneralUtilities"] PrintDefinitions[symbol]; This will pop up a window that shows all definitions of symbol. Here is a short summary of features: The window shows code cells containing all DownValues, OwnValues, UpValues, SubValues, and Attributes of a ...

18

You should consider using the sandbox functionality. You can create a subkernel and put it in sandbox mode this way: link = LinkLaunch[First[$CommandLine]<> " -wstp -noicon"]; LinkWrite[link, Unevaluated@EvaluatePacket[DeveloperStartProtectedMode[]]]; You can then interact with this subkernel using the standard LinkWrite and LinkRead functions. If ... 14 The definitions aren't being lost, they're being shadowed, as described in the tutorial on contexts. Mathematica doesn't warn you about this because it only warns when there is shadowing between contexts that are listed in the$ContextPath. Since Begin only changes $Context and not$ContextPath, you don't get a warning when the symbol that causes shadowing ...

13

I have been solving exactly the same problem about 2 years ago (http://community.wolfram.com/groups/-/m/t/125587?p_p_auth=aZGMz5bs). Students are uploading piece of Mathematica (Wolfram Language) code which is run by a testing script (in Mathematica) and the results are compared with a reference solution. To prevent the students to run potentially dangerous ...

10

I will make no attempt to defend the fact that Mathematica simulates scoping by means of variable renaming. However, the behaviour that we see is consistent with the principles under which Mathematica does operate. Whenever Mathematica tries to interpret a symbol name, it first checks to see whether a symbol with that name already exists in a package in ...

10

I think the symbols sym and $m7res are created by Information. They are not present when the kernel is started. Fresh kernel 1: Quit[] Names["Global*"] (* {} *) Fresh kernel 2: Quit[] foo = Trace[ Information["Global*"], TraceInternal -> True]; foo[[8, 3, 5, 7, 2, 9, 18, 65, 2, 1, 3, 6, 7, 5, 6, 4, 3, 3, 6, 2, 8, 12, 10, 5, 6, 2, ... 8 Indeed confusing, but can be explained. Please read here first on how Mathematica searches contexts for symbols. In short,$Context tells it where to create symbols. It's for creation, not for lookup. $ContextPath tells it where to look for symbols but doesn't affect symbol creation. If the symbol is not found in any of the$ContextPath contexts, ...

7

There are two things you need to know: (1.) Mathematica knows about symbols, even if you only mention them: This means that in this simple example 1 /. myVar_Integer :> 0 where myVar is only a placeholder (a named pattern) or like you call it a dummy, Mathematica still sees this symbol and adds it to its symbol table Names["Global*"] (* {"myVar"} *) ...

6

It seems that when the book appeared, the behaviour of how a symbol is resolved was different. We have two important things: the current $Context which is usually Global unless you change it with e.g. Begin as you did the$ContextPath which is a list of contexts that are searched when you type in a symbol like x without explicit context Now there seems ...

6

If I understand the problem I think I can help, but what I propose is a bit weird. I think you have a package that uses the unqualified Symbol name Order internally, and you need the package not to see the SystemOrder Symbol while it is defined. To effect this you can temporarily change the Context of Order, then put it back after loading the package. As ...

6

And if there is a possibility to manually use it for something useful? Yes, it solves a problem I had many times and which I had to work around. And none of those work arounds was as general as a following method. The case you are writing a package that exports a function GenerateModule[] which creates new notebook/cdf. (let's say each instance has ...

5

We can replace something, in all definitions associated with a symbol, using function like this: ClearAll[replaceExtendedDefinition] SetAttributes[replaceExtendedDefinition, HoldFirst] replaceExtendedDefinition[sym_, rules_] := Replace[ LanguageExtendedDefinition[sym] , (rule:Rule | RuleDelayed)[lhs_, rhs_] :> ...

5

ReadList seems to work as you intended when used instead of Get in your code: ClearAll["file1*", "file2*"] Begin["file1"] ReadList["file1.txt", "Expression"] End[] Begin["file2"] ReadList["file2.txt", "Expression"] End[] On my system, I obtain: ?file1* Alternatively you can of course check the values themselves: a (* Out: a *) ...

5

I was digging around one day and I found appropriate function for this. FrontEndExecute@FrontEndPrivateGetUpdatedSymbolContexts[]; will help if you read a package or clear symbols from different place than the notebook interface. CreatePalette[ Button["Clear", Clear["Global*"]; FrontEndExecute@FrontEndPrivateGetUpdatedSymbolContexts[]; , ...

5

From the comments: But I'm mainly worried about the warning messages that Mathematica issues when I load both packages. If the packages are properly written, and if the symbol conflict is between two packages (and not builtins and a package function), then you can safely ignore it. From the documentation of BeginPackage: BeginPackage["context"] ...

4

Note: shown below is an answer to the first version of the OP's question Here is a simple example using scoping constructs, namely Block in this case. The idea is that you can indicate symbols to make local to Block, which implements dynamic scoping: take a look at the "Background and Context" section of its docs for a more complete explanation. Symbols ...

4

As @MarcoB states, you should probably use scoping constructs... If you're opposed to that idea, you can set the Notebooks default context to be Unique to Each Cell Group. I wouldn't recommend that, but it works. You can set that under Evaluation > Notebook's Default Context > Unique to Each Cell Group: Note, to escape this, you need to specify ...

3

Every symbol always has a context. Most of the time we are in the Global context. $Context (* "Global" *) Normally we don't have to specify a variable as Globals Simply writing s is sufficient provided we are in the Global context. Inside your package the symbols and functions are defined in the SimulatorV2DebugPrivate context. In the function ... 3 I see the same behaviour, also using v10.2.0 on Win7/64. As to the "why", the sequence of events is as follows. As a matter of routine, Information generates a random cell tag for the display cell: This cell tag is generated using CreateUUID. CreateUUID, in turn, is autoloaded as part of a collection symbols all somewhat related to cloud functionality. ... 3 It is hard to answer you without you showing a minimal example of the problem. But my guess is that you are making the mistake of returning symbols from the package back to the user. The way to handle these things, is to do like all Mathematica functions do, which is pass the symbols needed in the call itself. For example, when using DSolve or Integrate, ... 3 It is a matter of having the right$ContextPath at the time n is referenced. This is slightly complicated by the fact that contexts are interpreted at parse time, so typical tricks such as Block do not work. The behavior of Begin and BeginPackage are also different with respect to $ContextPath, but this is all discussed in the documentation, so I will let ... 3 This is messy and imperfect, but it will work in simple cases: Import the package contents: pack = ImportString[data, {"Package", "HeldExpressions"}] (* {HoldComplete[BeginPackage["Test"]], HoldComplete[testFunction::usage = "-";], HoldComplete[Begin["Private"]], HoldComplete[testFunction[] := {123, explicitvalue, Hold[explicitvalue]};], ... 3 I think this is a caching problem. Considering the examples in the Update documentation it certainly makes sense that this could be the case. Although Update appears to have no effect I have found something that does: Information. x = 1; Context[x] = "foo"; x foox Context[x] 1 1 "foo" ?x foox x=1 x foox Context[x] x 1 "Global" ... 3 You can make use of Formal Symbols. BeginPackage["Test"]; replace::usage = "Returns \[FormalV]/.rules."; Begin["Private"]; replace[rules_] := \[FormalV] /.rules End[]; EndPackage[]; Then in the notebook. replace[\[FormalV] -> 0] (* 0 *) Hope this helps. 3 is there some way to take the call ReplaceAll[var, rules]and make it forget contexts for a minute? BeginPackage["Test"]; replace::usage = "Returns var/.rules."; print; Begin["Private"]; replace[rules_] := ReplaceAll[Symbol[$Context <> "var"], rules] End[]; EndPackage[]; Not general, but works. I would expect that replace[rules_] := ...

2

(this is wiki answer, as just noticed it is duplicate, but will keep it here for easy reference) The result is different from Version 2.2 and version 10.1, this is just to show the difference. Something changed between 1993 and today:

2

Try replace[rules_] := ReplaceAll[Globalvar, rules] in your function. Then replace[var -> 0] replace[TestPrivatevar -> 0] yields 0 var as I think you'd like.

2

i am doing the same thing as you did，and i am using MSP module which is a security solution for webMathmatica。please refer my topic How to adapt MSPToExpression function in $PrePrint? sandbox seems another good solution for security，mathematica online is using it。 can i ask whether you solved this by using sandbox？ 1 What's happening is that the expression is being read in and parsed before being evaluated, which means that the symbols Symbolize and ParsedBoxWrapper are created before the "Notation" context is placed on the$ContextPath by Needs. Without seeing the symbols in "Notation", Mathematica creates them in the "Global" context, leading to the shadowing. You ...

1

To summarize the comments by me and Szabolcs into an answer, these will be running in different instances (separate processes) of the same kernel executable. There is a related note in the documentation of the WolframScript interpreter, Each of the Wolfram Language scripts running concurrently starts its own kernel, with no shared variables or ...

Only top voted, non community-wiki answers of a minimum length are eligible


text:
# How do I design a generating function to count subsets of distinct objects?

Given the following problem:

A national singing contest has five distinct entrants from each state. Use a generating function for modeling the number of ways to pick $20$ semifinalists if there are at most three people from each state.

Up until this question, I've been dealing with only identical objects. I'd like to say that the function will be

$$g(x)=(1+x+x^2+x^3)^{50}$$

but the problem with this is that I'm assuming that all of the contestants are identical. How can I take account for the fact that each contestant is distinct?

• For anyone else wondering like me where the number $50$ came from: it's from the assumption that there are $50$ states in whatever country this problem is about. – ShreevatsaR Mar 4 '14 at 4:11

Of the $5$ entrants from each state, there are $\binom{5}{0}$ ways to choose 0 of them, $\binom{5}{1}$ ways to choose $1$, $\binom{5}{2}$ ways to choose $2$, and so on. So, the generating function for contestants from a single state is $$f(x)=\binom{5}{0}+\binom{5}{1}x+\binom{5}{2}x^2+\binom{5}{3}x^3=1+5x+10x^2+10x^3,$$ since we cut off at $3$ per state.
So, in all, $$g(x)=(1+5x+10x^2+10x^3)^{50}.$$
• $(1+x)^{250}$ looks like it does not take into account the limitations of at most 3 per state. Given your other advice, however, I came up with $g(x)=(1+5x+10x^{2}+10x^{3})^{50}$ – agent154 Mar 3 '14 at 17:07


text:
# A theorem due to Gelfand and Kolmogorov

For any topological space $X$, we can define $C(X)$ to be the commutative ring of continuous functions $f\,:\,X\rightarrow \mathbb{R}$ under pointwise addition and multiplication. Then $C(-)$ becomes a contravariant functor $C(-)\,:\,\bf{Top}\rightarrow \text{ComRing}$.

A theorem due to Gelfand and Kolmogorov states the following:

Let $X$ and $Y$ be compact Hausdorff spaces. If $C(X)$ and $C(Y)$ are isomorphic as rings, then $X$ and $Y$ are homeomorphic.

I encountered this theorem as an example in a book on homological algebra, without proof. I have searched for the proof, but have been unable to find it.

If anyone has an idea of how to prove this, or a reference to a proof, I would appreciate it greatly.

• You might already know this, but there is a similar statement which is known as Gelfand duality. It deals with functions to $\mathbb{C}$ and commutative $C^*$-algebras though. – Sebastian Nov 1 '12 at 12:37
• Hist. ref.: И. М. Гельфанд, А. Н. Колмогоров, “О кольцах непрерывных функций на топологических пространствах”, Докл. АН СССР, 22:1 (1939), 11–15 – Grigory M Nov 1 '12 at 12:39
• An english translation of (part of) the paper referenced by @Grigory's (I hope...). – Raymond Manzoni Nov 1 '12 at 12:47

I found a proof in these lecture notes by Garrido and Jaramillo. See Theorem 18. They also have historical references.

• Note that the theorem in those notes uses the $\mathbb{R}$-algebra structure on $C(X)$, not just the ring structure. – Eric Wofsey Aug 6 '19 at 5:54
• @EricWofsey: The R-algebra structure can be canonically reconstructed from the ring structure in this case. – Dmitri Pavlov Nov 24 '19 at 16:22
• @DmitriPavlov: I'm aware of that; just pointing out that the reference given in this answer does not fully answer the question. – Eric Wofsey Nov 24 '19 at 16:27

Dugundji's Topology has a very short, readable proof.

you can find the proof on page 289. its very readable.

• Can you provide a more specific reference? – Ludolila Jan 24 '14 at 12:29

Gillman-Jerison, Rings of continuous functions, Theorem 7.3.

The key to the proof is the following fact.

Lemma: Let $$X$$ be a compact space and let $$\varphi:C(X)\to\mathbb{R}$$ be a ring-homomorphism. Then there exists $$x\in X$$ such that $$\varphi(f)=f(x)$$ for all $$f\in C(X)$$.

Proof: Note that if $$f\in C(X)$$ is such that $$f\geq 0$$ everywhere, then $$\varphi(f)=\varphi(\sqrt{f})^2\geq 0$$. I claim furthermore that $$\varphi$$ is an $$\mathbb{R}$$-algebra homomorphism, so $$\varphi(r)=r$$ for any $$r\in\mathbb{R}$$ (thinking of it in $$C(X)$$ as a constant function on $$X$$). Indeed, we know this must be true if $$r\in\mathbb{Q}$$; for arbitrary $$r\in\mathbb{R}$$, now use the fact that $$\varphi(r-q)\geq0$$ if $$q\leq r$$ and $$q\in\mathbb{Q}$$ and $$\varphi(q-r)\geq 0$$ if $$q\geq r$$ and $$q\in\mathbb{Q}$$.

Now suppose that $$\varphi$$ is not given by evaluation at any point. Then for each $$x\in X$$, there is a function $$f_x\in C(X)$$ such that $$\varphi(f_x)\neq f_x(x)$$. Letting $$r=\varphi(f_x)$$ and replacing $$f_x$$ with $$f_x-r$$, we may assume $$f_x(x)\neq 0$$ and $$\varphi(f_x)=0$$. Replacing $$f_x$$ with its square, we may further assume that $$f_x\geq 0$$ everywhere. By compactness of $$X$$, finitely many of the sets $$\{y:f_x(y)>0\}$$ cover $$X$$, and so adding together the corresponding $$f_x$$'s, we get a function $$f\in C(X)$$ such that $$f>0$$ everywhere and $$\varphi(f)=0$$. But then $$1/f$$ is continuous so $$f$$ is a unit and so $$\varphi(f)$$ cannot be $$0$$, so this is a contradiction.

Given this fact, the result you ask for follows easily. If $$X$$ is compact Hausdorff, then we can recover the set $$X$$ from $$C(X)$$ (up to canonical bijection) as the set of ring-homomorphisms $$C(X)\to\mathbb{R}$$. We can moreover recover the topology on $$X$$ since it is the coarsest topology that makes each element of $$C(X)$$ continuous, by Urysohn's lemma. (Here if we are identifying $$X$$ with homomorphisms $$C(X)\to\mathbb{R}$$, we can think of an element of $$C(X)$$ as a function on $$X$$ by evaluation.) So we can recover the space $$X$$ up to homeomorphism from the ring $$C(X)$$.

(In fact, it similarly follows from the Lemma that if $$X$$ and $$Y$$ are compact Hausdorff, then ring-homomorphisms $$C(X)\to C(Y)$$ are naturally in bijection with continuous maps $$Y\to X$$, and this preserves composition. So this gives a contravariant equivalence of categories between compact Hausdorff spaces and rings of the form $$C(X)$$.)


text:
# Actions of $C^*$-dynamical systems on primitive ideals

Reading about induced Systems of $C^*$-Algebras, I found this one statement that I can't figure out.

Let $G$ be a compact Group and $(A,G,\alpha)$ a $C^*$-dynamical System, such that for some closed subgroup $H$ of $G$ there exists a $G$-equivariant map $\varphi$ between $(\text{Prim}(A),G,\alpha)$ and $(G/H,G,\text{lt})$, where lt denotes the left-translation. Let $I:= \bigcap \{P\in \text{Prim}(A) \colon \varphi(P)=eH\}$.

Now it is stated that $\bigcap\{\alpha_s(I) : s\in G\}$ equals $\{0\}$. I don't really get. I know that $I$ is an $H$-invariant ideal in $A$, since $\varphi$ is equivariant and all the $\alpha_s$ are *-automorphisms.


text:
# Finding out what characters a given font supports

How do I extract the list of supported Unicode characters from a TrueType or embedded OpenType font on Linux?

Is there a tool or a library I can use to process a .ttf or a .eot file and build a list of code points (like U+0123, U+1234, etc.) provided by the font?

• Try fc-list :charset=1234, but double-check its output… (it does work for me, it shows Gentium as having 2082 but not 2161) – mirabilos Mar 27 '19 at 22:43
• @mirabilos This isn't what the question asked. It shows the fonts that contain a given character (ie 1234). – Neil Mayhew Mar 28 '19 at 17:36
• Oh right. But these two questions are interwoven (and you’ll find many answers to the wrong question in the Answers section). – mirabilos Mar 29 '19 at 0:54
• @mirabilos Good point. I've edited the title slightly to make the intent of the question more obvious. – Neil Mayhew Mar 30 '19 at 15:04

Here is a method using the FontTools module (which you can install with something like pip install fonttools):

#!/usr/bin/env python
from itertools import chain
import sys

from fontTools.ttLib import TTFont
from fontTools.unicode import Unicode

ttf = TTFont(sys.argv[1], 0, verbose=0, allowVID=0,
ignoreDecompileErrors=True,
fontNumber=-1)

chars = chain.from_iterable([y + (Unicode[y[0]],) for y in x.cmap.items()] for x in ttf["cmap"].tables)
print(list(chars))

# Use this for just checking if the font contains the codepoint given as
# second argument:
#char = int(sys.argv[2], 0)
#print(Unicode[char])
#print(char in (x[0] for x in chars))

ttf.close()

The script takes as argument the font path :

python checkfont.py /path/to/font.ttf

• int(sys.argv[2], 0) will probably fail with "invalid literal" in most case, since one probably wants to find special characters. Use ord(sys.argv[2].decode('string_escape').decode('utf-8')) instead. – Skippy le Grand Gourou Feb 7 '17 at 12:44
• Anyway, this script based on python-fontconfig seems much faster : unix.stackexchange.com/a/268286/26952 – Skippy le Grand Gourou Feb 7 '17 at 12:44
• @SkippyleGrandGourou That sentence seems right? It passes sys.argv[1] to TTFont()? – Martin Tournoij Feb 7 '17 at 15:28
• You can simplify : chars = chain.from_iterable([y + (Unicode[y[0]],) for y in x.cmap.items()] for x in ttf["cmap"].tables) by chars = list(y + (Unicode[y[0]],) for x in ttf["cmap"].tables for y in x.cmap.items()) – Ismael EL ATIFI Jul 9 '19 at 13:56

The X program xfd can do this. To see all characters for the "DejaVu Sans Mono" font, run:

xfd -fa "DejaVu Sans Mono"

It's included in the x11-utils package on Debian/Ubuntu, xorg-x11-apps on Fedora/RHEL, and xorg-xfd on Arch Linux.

• xfd also gives the hex values as you need to type them in for unicode ala ctrl+shift+u – euxneks May 12 '15 at 23:25
• Opening up a GUI character map is not at all the same thing as listing the supported characters. – rspeer Aug 4 '15 at 3:15
• I wonder if a similar thing is possible for the built-in bitmap fonts, like 6x13? – domsson Jun 19 '20 at 10:02

fc-query my-font.ttf will give you a map of supported glyphs and all the locales the font is appropriate for according to fontconfig

Since pretty much all modern linux apps are fontconfig-based this is much more useful than a raw unicode list

The actual output format is discussed here http://lists.freedesktop.org/archives/fontconfig/2013-September/004915.html

The fontconfig commands can output the glyph list as a compact list of ranges, eg:

$fc-match --format='%{charset}\n' OpenSans 20-7e a0-17f 192 1a0-1a1 1af-1b0 1f0 1fa-1ff 218-21b 237 2bc 2c6-2c7 2c9 2d8-2dd 2f3 300-301 303 309 30f 323 384-38a 38c 38e-3a1 3a3-3ce 3d1-3d2 3d6 400-486 488-513 1e00-1e01 1e3e-1e3f 1e80-1e85 1ea0-1ef9 1f4d 2000-200b 2013-2015 2017-201e 2020-2022 2026 2030 2032-2033 2039-203a 203c 2044 2070 2074-2079 207f 20a3-20a4 20a7 20ab-20ac 2105 2113 2116 2120 2122 2126 212e 215b-215e 2202 2206 220f 2211-2212 221a 221e 222b 2248 2260 2264-2265 25ca fb00-fb04 feff fffc-fffd  Use fc-query for a .ttf file and fc-match for an installed font name. This likely doesn't involve installing any extra packages, and doesn't involve translating a bitmap. Use fc-match --format='%{file}\n' to check whether the right font is being matched. • This lies: it says “Gentium Italic” has, among others, “2150-2185”, but 2161 is definitely not in it. – mirabilos Mar 27 '19 at 22:41 • @mirabilos I have Gentium 5.000 and it definitely does contain 2161: ttx -t cmap -o - /usr/share/fonts/truetype/GentiumPlus-I.ttf | grep 0x2161 returns <map code="0x2161" name="uni2161"/><!-- ROMAN NUMERAL TWO -->. It's possible FontConfig is matching to a different font. Before I installed gentium, fc-match 'Gentium Italic' returned FreeMono.ttf: "FreeMono" "Regular". If so, the output of --format=%{charset} would not show what you expect. – Neil Mayhew Mar 28 '19 at 16:59 • I added a note mentioning the need to check whether the right font is being matched – Neil Mayhew Mar 28 '19 at 17:28 • Gentium Plus ≠ Gentium (I have all three, normal, Basic and Plus installed, but I was wondering about Gentium) – ah nvm, I see the problem:$ fc-match --format='%{file}\n' Gentium /usr/share/fonts/truetype/gentium/Gentium-R.ttf $fc-match --format='%{file}\n' Gentium\ Italic /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf$ fc-match --format='%{file}\n' Gentium:Italic /usr/share/fonts/truetype/gentium/Gentium-I.ttf And fc-match --format='%{file} ⇒ %{charset}\n' Gentium:Italic DTRT, wonderful. – mirabilos Mar 29 '19 at 0:50
• Glad it worked out for you. Good tip about Gentium:Italic instead of Gentium Italic, too. Thanks for that. – Neil Mayhew Mar 30 '19 at 15:01

The character code points for a ttf/otf font are stored in the CMAP table.

You can use ttx to generate a XML representation of the CMAP table. see here.

You can run the command ttx.exe -t cmap MyFont.ttf and it should output a file MyFont.ttx. Open it in a text editor and it should show you all the character code it found in the font.

• Note that ttx is part of the fonttools mentioned in the accepted answer. It's a Python script, so it's also available on Mac and Linux. – mivk May 9 '19 at 12:37

Here is a POSIX[1] shell script that can print the code point and the character in a nice and easy way with the help of fc-match which is mentioned in Neil Mayhew's answer (it can even handle up to 8-hex-digit Unicode):

#!/bin/bash
for range in $(fc-match --format='%{charset}\n' "$1"); do
for n in $(seq "0x${range%-*}" "0x${range#*-}"); do n_hex=$(printf "%04x" "$n") # using \U for 5-hex-digits printf "%-5s\U$n_hex\t" "$n_hex" count=$((count + 1))
if [ $((count % 10)) = 0 ]; then printf "\n" fi done done printf "\n"  You can pass the font name or anything that fc-match accepts: $ ls-chars "DejaVu Sans"

Updated content:

I learned that subshell is very time consuming (the printf subshell in my script). So I managed to write a improved version that is 5-10 times faster!

#!/bin/bash
for range in $(fc-match --format='%{charset}\n' "$1"); do
for n in $(seq "0x${range%-*}" "0x${range#*-}"); do printf "%04x\n" "$n"
done
done | while read -r n_hex; do
count=$((count + 1)) printf "%-5s\U$n_hex\t" "$n_hex" [$((count % 10)) = 0 ] && printf "\n"
done
printf "\n"

Old version:

$time ls-chars "DejaVu Sans" | wc 592 11269 52740 real 0m2.876s user 0m2.203s sys 0m0.888s  New version (the line number indicates 5910+ characters, in 0.4 seconds!): $ time ls-chars "DejaVu Sans" | wc
592   11269   52740

real    0m0.399s
user    0m0.446s
sys     0m0.120s

End of update

Sample output (it aligns better in my st terminal 😆):

0020    0021 !  0022 "  0023 #  0024 $0025 % 0026 & 0027 ' 0028 ( 0029 ) 002a * 002b + 002c , 002d - 002e . 002f / 0030 0 0031 1 0032 2 0033 3 0034 4 0035 5 0036 6 0037 7 0038 8 0039 9 003a : 003b ; 003c < 003d = 003e > 003f ? 0040 @ 0041 A 0042 B 0043 C 0044 D 0045 E 0046 F 0047 G ... 1f61a😚 1f61b😛 1f61c😜 1f61d😝 1f61e😞 1f61f😟 1f620😠 1f621😡 1f622😢 1f623😣 1f625😥 1f626😦 1f627😧 1f628😨 1f629😩 1f62a😪 1f62b😫 1f62d😭 1f62e😮 1f62f😯 1f630😰 1f631😱 1f632😲 1f633😳 1f634😴 1f635😵 1f636😶 1f637😷 1f638😸 1f639😹 1f63a😺 1f63b😻 1f63c😼 1f63d😽 1f63e😾 1f63f😿 1f640🙀 1f643🙃  [1] Seems \U in printf is not POSIX standard? • #!/bin/sh => #!/bin/bash – vatosarmat Jan 23 at 3:28 • @vatosarmat, right, it should be something like bash, thanks. I guess the former works for me becuase the shell uses exectable printf instead of shell built-in. – Oliver Lew Jan 24 at 5:47 • Correction to last comment: #!/bin/sh shebang does not work for me either, maybe I really haven't tried it. My bad. – Oliver Lew Jan 24 at 6:04 • \U may require 6 characters; \u for 4 characters. This is fairly typical for programming languages (otherwise its ambiguous), although some things make be a bit lax. Makes a difference on Ubuntu 20.04 at least, where printf \U1f643 prints \u0001F643 (surrogate pair?), but \U01f643 returns 🙃 – Cameron Kerr Mar 24 at 12:01 • Hmm, '\U0030' produces a '0', and '\U0030 ' produces '0 '. '\U0030a' produces '\u030a' (leading zeros, normalising to \u with 4 digits). However, as others have pointed out, this is bash builtin, not POSIX printf. /usr/bin/printf '\U0030' gives 'missing hexadecimal number in escape', and /usr/bin/printf '\u0030' gives 'invalid universal character name \u0030', but that's only because it should be specified as '0'. gnu-coreutils.7620.n7.nabble.com/… – Cameron Kerr Mar 24 at 23:16 I just had the same problem, and made a HOWTO that goes one step further, baking a regexp of all the supported Unicode code points. If you just want the array of codepoints, you can use this when peeking at your ttx xml in Chrome devtools, after running ttx -t cmap myfont.ttf and, probably, renaming myfont.ttx to myfont.xml to invoke Chrome's xml mode: function codepoint(node) { return Number(node.nodeValue); }$x('//cmap/*[@platformID="0"]/*/@code').map(codepoint);

(Also relies on fonttools from gilamesh's suggestion; sudo apt-get install fonttools if you're on an ubuntu system.)

The above Janus's answer (https://stackoverflow.com/a/19438403/431528) works. But python is too slow, especially for Asian fonts. It costs minutes for a 40MB file size font on my E5 computer.

So I write a little C++ program to do that. It is depends on FreeType2(https://www.freetype.org/). It is a vs2015 project, but it is easy to port to linux for it is a console application.

Code can be found here, https://github.com/zhk/AllCodePoints For the 40MB file size Asian font, it costs about 30 ms on my E5 computer.

To add to @Oliver Lew answer, I've added the option to query a local font instead of a system font:

#!/bin/bash

# If the first argument is a font file, use fc-match instead of fc-query to
# display the font
[[ -f "$1" ]] && fc='fc-query' || fc='fc-match' for range in$($fc --format='%{charset}\n' "$1"); do
for n in $(seq "0x${range%-*}" "0x${range#*-}"); do printf "%04x\n" "$n"
done
done | while read -r n_hex; do
count=$((count + 1)) printf "%-5s\U$n_hex\t" "$n_hex" [$((count % 10)) = 0 ] && printf "\n"
done
printf "\n"

You can do this on Linux in Perl using the Font::TTF module.

• Yes, it should be possible. But it's a complex suite of modules, with miserable documentation. So without an example of how it could be done, this answer seems quite useless. – mivk Jul 17 '18 at 19:38

If you ONLY want to "view" the fonts, the following might be helpful (if your terminal supports the font in question):

#!/usr/bin/env python
import sys
from fontTools.ttLib import TTFont

with TTFont(sys.argv[1], 0, ignoreDecompileErrors=True) as ttf:
for x in ttf["cmap"].tables:
for (_, code) in x.cmap.items():
point = code.replace('uni', '\\u').lower()
print("echo -e '" + point + "'")

An unsafe, but easy way to view:

python font.py my-font.ttf | sh

Thanks to Janus (https://stackoverflow.com/a/19438403/431528) for the answer above.

If you want to get all characters supported by a font, you may use the following (based on Janus's answer)

from fontTools.ttLib import TTFont

def get_font_characters(font_path):
with TTFont(font_path) as font:
characters = {chr(y[0]) for x in font["cmap"].tables for y in x.cmap.items()}
return characters

• How would you modify this script to work with otf fonts too? – Mayer Goldberg Jan 20 '20 at 17:25

FreeType's project provides demo application, where one of the demos is called "ftdump". Then you can do: "ftdump -V path-to-the-font-file" and you will get what you are looking for. To view the source code, you can close the sources here: https://www.freetype.org/developer.html

On Ubuntu it can be installed with "sudo apt install freetype2-demos"

Note: Try "-c" instead of "-V". I see that args have changed between versions.


text:
I created an app launcher in Midori. How can I delete it?

I was messing around in Midori this afternoon and I created a launcher in the Slingshot menu (see image). I didn't really want to do this; it's just a random youtube video, but now I can't figure out how to delete it. It's not listed in the Applications menu in Midori, and it's not in the Software Center. Can someone help me out?

A launcher is basically a .desktop file which you can find in ~/.local/share/applications/. Just delete it and the launcher is gone.
(/usr/share/applications/ contains launchers of other applications for all users.)
Also be sure to check [~/Desktop/] - this directory is also attached to Slingshot and [.desktop files] will be added to the launcher, too.


text:
# Inertia Degree in Cyclotomic Extensions

Let $\zeta$ be a primitive $l$th root of unity, where $l$ is prime. If $p$ is another prime number, let $f$ be the order of $p$ in $U(\mathbb{Z}/l \mathbb{Z})$. Then in $\mathbb{Z}[\zeta]$, $p$ factors as a product of $\frac{l-1}{f}$ unramified primes, each with inertia degree $f$.

What about in an arbitrary cyclotomic extension though? If $\zeta$ is a primitive $n$th root of unity and $p$ does not divide $n$ (hence $p$ is unramified in $\mathbb{Z}[\zeta]$), how does $p$ factor? I'm aware this is equivalent to the factorization of the $n$th cyclotomic polynomial modulo $p$, but I was wondering if any general result on this was known.

If you identify $G = \text{Gal}(\mathbb Q(\zeta_n)/\mathbb Q)$ with $(\mathbb Z/n\mathbb Z)^\times$ in the usual way, and $(n,p)=1$, then the Frobenius $\sigma_p \in G$ at $p$ is precisely the class of $p$ in $(\mathbb Z/n\mathbb Z)^\times$. The order of $\sigma_p$ is therefore equal to the multiplicative order $f$ of $p$ modulo $n$. Since $p$ is unramified, it follows that the decomposition group at $p$ has order $f$, and that $p$ factors as a product of $|G|/f = \varphi(n)/f$ distinct primes in $\mathbb Z [\zeta_n]$.


text:
# Let $F_n$ be the Fibonacci number, with $F_0 = 1, F_1 = 1$. Prove the identity $2F_n = F_{n+1} + F_{n−2}$ by using generating functions.

Let Fn be the Fibonacci number, with $$F_0 = 1, F_1 = 1$$. Prove the identity $$2F_n = F_{n+1} + F_{n−2}$$ by using generating functions.

I know the generating function for the shifted Fibonacci Sequence, $$F_n$$ with $$F_0=1$$ and $$F_1=1$$ but not sure how to incorporate the $$2$$.

You may prove it by using the direct formula for Fibonacci numbers $$F_k=\frac{a^k-b^k}{\sqrt{5}}, a+b=1, ab=-1,a^2=a+1, b^2=b+1$$, Then $$F_{n+1}+F_{n-2}= \frac{a^{n+1}-b^{n+1}}{\sqrt{5}}+\frac{a^{n-2}-b^{n-2}}{\sqrt{5}}$$ $$=\frac{1}{\sqrt{5}}\left(a^n(a+\frac{1}{a^2})-b^n(b+\frac{1}{b^2}) \right)$$ note that $$a+1/a^2=a+b^2=a+b+1=2$$, then $$F_{n+1}+F_{n-2}= \frac{2}{\sqrt{5}}[a^n-b^n]=2 F_n$$
• If you're going to avoid generating functions, you may as well prove this from $F_{n+1}=F_n+F_{n-1}$ and $F_n=F_{n-1}+F_{n-2}$ and middle school algebra. – Matthew Daly Jan 25 at 18:10


text:
Adds a doormat viewlet and installs it in the Plone footer. The links and text in the doormat are manageable in the control panel

## Project description

Introduction
=============

A doormat is a couple of links which are presented in a structured way.
One example is the current plone.org, where the div#sitemap at the
bottom consists of some ordered bundles of internal and external links,
"Plone foundation" and "Support".

This product adds a control panel in which you can design your doormat
with a WYSIWYG editor. No contenttypes are added.

- Code repository: https://svn.plone.org/svn/collective/collective.doormat/trunk
- Report bugs at http://plone.org/products/collective.doormat/issues

Change history
**************

Changelog
=========

0.1 (2011/12/15)
----------------

- initial release
- Created recipe with ZopeSkel
[Christian Ledermann]

Detailed Documentation
**********************

Introduction
============

This is a full-blown functional test. The emphasis here is on testing what
the user may input and see, and the system is largely tested as a black box.
We use PloneTestCase to set up this test as well, so we have a full Plone site
to play with. We *can* inspect the state of the portal, e.g. using
self.portal and self.folder, but it is often frowned upon since you are not
treating the system as a black box. Also, if you, for example, log in or set
roles using calls like self.setRoles(), these are not reflected in the test
browser, which runs as a separate session.

Being a doctest, we can tell a story here.

First, we must perform some setup. We use the testbrowser that is shipped
with Five, as this provides proper Zope 2 integration. Most of the
documentation, though, is in the underlying zope.testbrower package.

>>> from Products.Five.testbrowser import Browser
>>> browser = Browser()
>>> portal_url = self.portal.absolute_url()

The following is useful when writing and debugging testbrowser tests. It lets
us see all error messages in the error_log.

>>> self.portal.error_log._ignored_exceptions = ()

With that in place, we can go to the portal front page and log in. We will
do this using the default user from PloneTestCase:

>>> from Products.PloneTestCase.setup import portal_owner, default_password

Because add-on themes or products may remove or hide the login portlet, this test will use the login form that comes with plone.

>>> browser.getControl(name='__ac_name').value = portal_owner
>>> browser.getControl(name='submit').click()

Here, we set the value of the fields on the login form and then simulate a
submit click. We then ensure that we get the friendly logged-in message:

>>> "You are now logged in" in browser.contents
True

Finally, let's return to the front page of our site before continuing

>>> browser.open(portal_url)

-*- extra stuff goes here -*-

Contributors
************

Christian Ledermann, Author

********

## Project details

Uploaded source


text:
# Some alkanes may be prepared by adding an alkyl iodide dropwise to sodium in a suitable inert solvent

e.g:$2CH_3I +2Na\rightarrow C_2H_6+2NaI$

if a mixture of iodomethane and 2-iodopropane is used as a starting material the product will contain

$\begin{array}{1 1}a)\; 2-methyl\; propane\\b)\; Methane, propene\; and\; propane\\c)\; Ethane\; and \;2.3\; dimethylbutane\\d)\; all\; of\; the \;above\end{array}$

$2CH_3I+Na\rightarrow CH_3-CH_3$
Hence (c) is the correct answer.


text:
The edge of a cube is of length of a. The shortest distance between the diagonal of a cube and an edge skew to it i

### Question Asked by a Student from EXXAMM.com Team

Q 2176112976.     The edge of a cube is of length of a. The shortest distance

between the diagonal of a cube and an edge skew to it is
A

a sqrt (2)

B

a

C

sqrt(2)/a

D

a/sqrt(2)

#### HINT

(Provided By a Student and Checked/Corrected by EXXAMM.com Team)

#### Access free resources including

• 100% free video lectures with detailed notes and examples
• Previous Year Papers
• Mock Tests
• Practices question categorized in topics and 4 levels with detailed solutions
• Syllabus & Pattern Analysis


text:
## Chemical Freeze-Out and Higher Order Multiplicity Moments    [PDF]

A. Tawfik
We calculate the non-normalized moments of the particle multiplicity within the framework of the hadron resonance gas (HRG) model. At finite chemical potential $\mu$, a non-monotonic behavior is observed in the thermal evolution of third order moment (skewness $S$) and the higher order ones as well. Among others, this observation likely reflects dynamical fluctuations and strong correlations. The signatures of non-monotonicity in the normalized fourth order moment (kurtosis $\kappa$) and its products get very clear. Based on these findings, we introduce a novel condition characterizing the universal freeze-out curve. The chemical freeze-out parameters $T$ and $\mu$ are described by vanishing $\kappa\, \sigma^2$ or equivalently $m_4=3\,\chi^2$, where $\sigma$, $\chi$ and $m_4$ are the standard deviation, susceptibility and fourth order moment, respectively. The fact that the HRG model is not able to release information about criticality related to the confinement and chiral dynamics should not veil the observations related to the chemical freeze-out. Recent lattice QCD studies strongly advocate the main conclusion of the present paper.
View original: http://arxiv.org/abs/1306.1025


text:
# Financial Discount Rates in Project Appraisal

Chia sẻ: Ziwan Ziwan | Ngày: | Loại File: PDF | Số trang:29

0
383
lượt xem
97

## Financial Discount Rates in Project Appraisal

Mô tả tài liệu

In the financial appraisal of a project, the cashflow statements are constructed from two points of view: the Total Investment (TI) Point of View and the Equity Point of View. One of the most important issues is the estimation of the correct financial discount rates for the two points of view. In the presence of taxes, the benefit of the tax shield from the interest deduction may be excluded or included in the free cashflow (FCF) of the project. Depending on whether the tax shield is included or excluded, the formulas for the weighted average cost of capital (WACC) will be different. In this paper, using some......

Chủ đề:

Bình luận(0)

Lưu

## Nội dung Text: Financial Discount Rates in Project Appraisal

1. Financial Discount Rates in Project Appraisal Joseph Tham Abstract In the financial appraisal of a project, the cashflow statements are constructed from two points of view: the Total Investment (TI) Point of View and the Equity Point of View. One of the most important issues is the estimation of the correct financial discount rates for the two points of view. In the presence of taxes, the benefit of the tax shield from the interest deduction may be excluded or included in the free cashflow (FCF) of the project. Depending on whether the tax shield is included or excluded, the formulas for the weighted average cost of capital (WACC) will be different. In this paper, using some basic ideas of valuation from corporate finance, the estimation of the financial discount rates for cashflows in perpetuity and single- period cashflows will be illustrated with simple numerical examples. INTRODUCTION In the manual on cost-benefit analysis by Jenkins and Harberger (Chapter 3:12, 1997), it is stated that the construction of the financial cashflow statements should be conducted from two points of view: 1. The Total Investment (or Banker’s) Point of View and 2. The Owner’s (or Equity) Point of View. The purpose of the Total Investment Point of View is to “determine the overall strength of the project.” See Jenkins & Harberger (Chapter 3:12, 1997). Also, see Bierman & Smidt (pg 405, 1993). In practical project appraisal, the manual suggests that it would be useful to analyze a project by constructing the cashflow statements from the two points of view because “it allows the analyst to determine whether the parties involved will find it worthwhile to finance, join or execute the project”. See Jenkins & Harberger (Chapter 3:11, 1997). For a recent example of the application of this approach in project appraisal, see Jenkins & Lim (1988). In practical terms, the relevance and need to construct and distinguish these two points of view in the process of project selection is unclear. That is, under what circumstances would we prefer to use the present value of the cashflow statement from the total investment point of view (CFS-TIP) rather than the present value of the cashflow statement from the equity point of view (CFS-EPV)? Jenkins & Harberger provide no discussion or guidance on the estimation of the appropriate discount rates for the two points of view. The conspicuous absence of a discussion on the estimation and calculation of the appropriate financial discount rates from the two points of view is understandable. See Tham (1999). Within the traditional context of project appraisal, the relative importance of the economic opportunity cost of capital, as opposed to the financial cost of capital, has always been higher. However, in some cases, the financial cost of capital may be as important, if not more, in order to assess and ensure the financial sustainability of the project. Due to the lack of discussion in the manual, we do not know the explicit (or implicit) assumptions with respect to the relationship between the present value of the CFS-TIP and the present value of the
2. ProjN.Doc CFS-EPV. For example, under what conditions would it be reasonable to assume that equality holds between the two points of view? Jenkins & Harberger (Chapter 3:11, 1997) write: “If a project is profitable from the viewpoint of a banker or the budget office but unprofitable to the owner, the project could face problems during implementation.” This statement suggests that, in practice, inequality in the two present values is to be expected and could be a real possibility rather than the rare exception. However, the statement raises many questions. If in fact there is inequality in the present values, what is the source of the inequality? The above statement does not even hint at a possible reason for the divergence in the two present values. What is the meaning or interpretation of the two present values? The interpretation of the two points of view is particularly problematic when the present values have opposite signs. The meaning or practical significance of this divergence for project selection is not explained nor is it grounded in any theory of cashflow valuation. If in fact, the inequality holds, then it is conceivable that the present value in one point of view is positive, while the present value in the other point of view is negative or vice versa. In project selection, when would it be desirable to prefer one present value over the other (if at all) or do both present values have to be positive in order for a project to be selected? The interpretation of the discrepancy between the (expected) present values in the two points of view is even more serious when Monte Carlo simulation is conducted on the cashflows statements because the variances of the two present values will be different. Consequently, the risk profiles of the cashflows from the two points of view will be different. Even with the same expected NPVs from the two points of view, the variances of the NPV from the two points of view would be different; the interpretation of the risk profiles will be even more difficult if the expected values of the NPV from the two points of view are substantially different. The objective of this paper is to apply some ideas from the literature in corporate finance to elucidate the calculation of appropriate financial discount rates in practical project appraisal. The Cashflow Statement from the Total Investment Point of View (CFS-TIPV) is equivalent to the free cashflow (FCF) in corporate finance which is defined as the “after-tax free cashflow available for payment to creditors and shareholders.” See Copeland & Weston (pg 440, 1988). However, we have to be careful to specify whether the CFS-TIPV (or equivalently the FCF) includes or excludes the present value of the tax shield that arises from the interest deduction with debt financing. The standard results of the models from corporate finance, if one were to accept the stringent assumptions underlying the models, would suggest that the present value from the two points of view are necessarily equal (in the absence of taxes). At the outset, it is very important to acknowledge that the standard assumptions in corporate finance are very stringent and thus there is a legitimate question about the relevance of such perfect models to practical project appraisal. It is possible that many practitioners would consider such an application of principles from corporate finance to project appraisal to be inappropriate. Such reservations on the part of practitioners are fully justified. A perusal of the assumptions which would have to hold in the Modigliani & Miller (M & M) and Capital Asset Pricing Model (CAPM) worlds would persuade many readers that even in developed countries, most, if not all, of the assumptions are seriously violated in practice. The violations are Joseph Tham 2
3. ProjN.Doc particularly acute in the practice of project appraisal in developing countries with capital markets which are, at present, far from perfect and will be far from perfect in the foreseeable future. In other words, the M & M world or the CAPM world are ideal situations and may not correspond to the real world in any meaningful sense. Nevertheless, these ideas are extremely important and relevant. The basic concepts and conclusions from the models in corporate finance with applications in project appraisal can be briefly summarized as follows. 1. We need to distinguish ρ, the return to equity with no-debt financing, and e, the return to equity with debt financing. 2. In the absence of taxes, debt financing does not affect the value of the firm or project. 3. The cashflow from the equity point of view with debt financing (CFS-EPV) is more risky than the cashflow from the equity point of view with no debt financing (CFS-AEPV). 4. In the presence of taxes, the value of the levered firm is higher than the value of the unlevered firm by the present value of the tax shield. However, a complete analysis suggests that it may be reasonable to assume that the overall effect of taxes is close to zero. See Benninga (pg 257 & 259, 1997) 5. There are two ways to account for the increase in value from the tax shield. We can either lower the Weighted Average Cost of Capital (WACC) or include the present value of the tax shield in the cashflow statement. In terms of valuation, both methods are equivalent. See line 18 and line 27 for further details on the WACC. 6. With debt financing, the return to equity e is a positive function of the debt- equity ratio, that is, the higher the debt equity ratio D/E, the higher the return to equity e. See line 26. I believe that the application of these concepts from corporate finance to the estimation of financial discount rates in practical project appraisal is very relevant and can provide a useful baseline for judging the results derived from other models with explicit assumptions that are closer to the real world. After understanding the calculations of the financial discount rates in the perfect world where M & M’s theories and CAPM hold, we can begin to relax the assumptions and make serious contributions to practical project selection in the imperfect world that is perhaps marginally more characteristic of developing countries compared to developed countries. In section 1, I will briefly introduce and discuss the two points of view in the absence of taxes. In Section 2, I will introduce the impact of taxes and review the formulas which are widely accepted in corporate finance for the two polar cases: cashflows of projects in perpetuity and projects with single period cashflows. See Miles & Ezzell (pg 720, 1980). I will not derive or discuss the meanings of the formulas. Typically, the formulas assume that the cashflows are in perpetuity and the debt equity ratio is constant and the analysts assume that the formulas for perpetuity are good approximations for finite cashflows. In Section 3, I will use a simple numerical example to illustrate the application of the formulas to cashflows in perpetuity. In Section 4, I will apply the same formulas to a single-period example and compare the results with the results from Section 3. Even though it is not technically correct, in the following discussion I will use the terms “firm” and “project” interchangeably. Joseph Tham 3
4. ProjN.Doc SECTION 1: Two Points of View A simple example would illustrate the difference between the two points of view in the financial analysis. Suppose there is a single-period project which requires an investment of $1,000 at the end of year 0 and provides a return of$1,200 at the end of year 1. For now, we will assume that the inflation rate is zero and there are no taxes. Later we will examine the impact of taxes. The CFS-TIPV for the simple project is shown below. Table 1.1: Cashflow Statement, Total Investment Point of View (CFS-TIPV) End of year>> 0 1 Revenues 0 1,200 Investment 1,000 0 NCF (TIPV) -1,000 1,200 The rate of return from the TIPV = (1,200 - 1,000) = 20.00%. (1) 1,000 Now if there was no debt financing for this project, the CFS-TIPV would apply to the equity holder, that is, the equity holder would invest $1,000 at the end of year 0 and receive$1,200 at the end year 1. Table 1.2: Cashflow Statement, All-Equity Point of View (CFS-AEPV) End of year>> 0 1 Revenues 0 1,200 Investment 1,000 0 NCF (AEPV) -1,000 1,200 Thus, in this special case with no taxes, the CFS-AEPV will be identical with the CFS-TIPV. Compare Table 1.1 and Table 1.2. We will see later that with taxes, there will be a divergence between the CFS-AEPV and the CFS-TIPV. Suppose the minimum required return on all-equity financing ρ is 20%. Then this project would be acceptable. In this special case, for simplicity, the value of ρ was chosen to make the NPV of the CFS-AEPV at ρ to be zero. The PV in year 0 of the CFS-AEPV in year 1 is = 1,200 = 1,000.00 (2) 1 + 20% The NPV in year 0 of the CFS-AEPV is = 1,200 - 1,000 = 0.00 (3) 1 + 20% Joseph Tham 4
5. ProjN.Doc Later, we consider an example where the NPV is positive. See line 21. Next, we will consider the effect of debt financing on the construction of the cashflow statements from the two points of view. Debt financing Suppose, to finance the project, we borrow 40% of the investment cost at an interest rate of 8%. Debt (as a percent of initial investment) = 40% (4) Equity (as a percent of initial investment) = 1- 40% = 60% (5) Debt-Equity Ratio = 40% = 0.667 (6) 60% Amount of debt, D = 40%*1000 = 400.00 (7) At the end of year 1, the principal plus the interest accrued will be repaid. Repayment in year 1 = D*(1 + d) = 432.00 (8) The loan schedule is shown below. Table 1.3: Loan Schedule End of year>> 0 1 Repayment 0 -432 Loan 400 0 Financing @ 8% 400 -432 We can obtain the Cashflow Statement from the Equity Point of View (CFS- EPV) by combining the CFS-TIPV with the cashflow of the loan schedule. The CFS- EPV is shown below. Table 1.4: Cashflow Statement, Equity Point of View (CFS-EPV) End of year>> 0 1 NCF (TIPV) -1,000 1,200 Financing 400 -432 NCF (EPV) -600 768 The rate of return (ROR) for the CFS-EPV, e = (768 - 600)/600 = 28.00%. (9) Joseph Tham 5
6. ProjN.Doc With 40% financing, the equity holder invests only 600 at the end of year 0 and receives 768 at the end of year 1. Note the difference between CFS-AEPV and CFS-EPV (Compare Table 1.2 and Table 1.4). With debt financing, the risk is higher for the equity holder and thus the return must be higher to compensate for the higher risk. See Levy & Sarnat (pg 376, 1994) The critical question is: what should be the appropriate financial discount rate for the cashflow statements from the two points of view. We will apply M & M’s theory which asserts that, in the absence of taxes, the value of the levered firm should be equal to the value of the unlevered firm. That is, financing does not affect valuation. Value of unlevered firm, (VUL) = (VL), Value of levered firm (10) In turn, the value of the levered firm is equal to the value of the equity (EL) and the value of the debt D. (VL) = (EL) + D (11) In other words, in the absence of taxes, the correct discount rate for the CFS-TIPV is equal to the required return on all-equity financing, namely ρ. The discount rate w for the CFS-TIPV is also commonly known as the Weighted Average Cost of Capital (WACC). The present value of the cashflow statement from the all-equity point of view at ρ is equal to the present value of the cashflow statement from the total investment point of view discounted at the WACC. See equation 12 below. PV[CFS-AEPV]@ ρ = PV[CFS-TIP]@ w (12) In present value terms, we can also write the following equivalent expression for line 11. The present value of the CFS-TIP is equal to the present value of the equity in the levered firm plus the present value of the debt. PV[CFS-TIP]@ w = PV[CFS-EPV]@ e + PV[CFS-Loan]@ d (13) Combining equations (12) and (13), we can write the following expression, PV[CFS-AEPV]@ ρ = PV[CFS-EPV]@ e + PV[CFS-Loan]@ d (14) The present value of the cashflow statement with all-equity financing is equal to the present value of the equity cashflow plus the present value of the loan. We can verify the above identity in the context of the simple example above. Compare line 2 and line 15. Joseph Tham 6
7. ProjN.Doc PV[Cashflow]TIP@ ρ = 1,200 = 1,000.00 (15) 1 + 20% The present value of the CFS-TIP, discounted at ρ, is 1,000; as shown below in line 16 and line 17, the present value of the CFS-EPV at e, is 600, and the present value of the loan repayment at d is 400, respectively. PV[Cashflow]Equity@ e = 768 = 600.00 (16) 1 + 28% PV[Cashflow]Loan@ d = 432 = 400.00 (17) 1 + 8% What these calculations show is a simple but powerful idea. It has been shown numerically that the discount rate w for CFS-TIP is a weighted average of the return on equity and the cost of debt; the value of weights are based on the relative values of the debt and equity. It is easy to confirm the above statements with algebra. We simply provide a simple numerical confirmation of the fact that the WACC is equal to ρ. See equation 1 and Table 1.2. w = Percent Equity*Return on Equity + Percent Debt *Cost of Debt = %E*e + %D*d = 60%*28% + 40%*8% = 16.80% + 3.20% = 20.00% (18) We can also use a well-known expression to calculate the value of e. Note that the following expression for e in line 19 is a function of the return to all-equity financing ρ, the cost of debt d, and the debt equity ratio D/E. e = ρ + (ρ - d)*D E = 20% + (20% - 8%)*40% 60% = 20% + 8.00% = 28.00% (19) Again, this calculation of the value of e in line 19 matches the previous calculation. See Table 1.4 and compare line 19 with line 9. Cashflow with positive NPV In the previous example, we had chosen specific numerical values to ensure that the NPV of the CFS-AEPV was zero. See line 3. In practice, it would be rare to find a project whose NPV was exactly zero. Instead, suppose that the annual revenues was 1,250. Then the cashflow statement would be as shown in Table 1.5. Table 1.5: Cashflow Statement, All-Equity Point of View (CFS-AEPV) Joseph Tham 7
8. ProjN.Doc End of year>> 0 1 Revenues 0 1,250 Investment 1,000 0 NCF (AEPV) -1,000 1,250 The rate of return (ROR) for the CFS-AEPV, = (1,250 - 1,000) = 25.00%. (20) 1,000 In this case, the rate of return of the CFS-AEPV is greater than ρ. Compare line 20 with line 1. In year 0, the NPV of the CFS-AEPV is = 1,250 - 1,000 = 41.67 (21) 1 + 20% Compare line 21 with line 3. In year 0, the PV of the CFS-AEPV in year 1 = 1,250 = 1,041.67 (22) 1 + 20% Compare line 22 with line 2. Since the NPV of the CFS-AEPV is positive in line 21, we have to make an adjustment in the calculation of the WACC. In the calculation of the total value of the debt plus equity, we have to use the total value of 1,041.67 in line 22 and recalculate the percentage of debt and equity. Debt (as a percent of total value) = 400 = 38.40% (23) 1,041.67 Equity (as a percent of total value) = 1 - 38.40% = 61.60% (24) Debt-Equity Ratio = 38.40% = 0.623 (25) 61.60% Thus, the percentage of debt as a percentage of the total value is 38.40% and not 40%. Compare line 23, line 24 and line 25 with line 4, line 5 and line 6 respectively. Also, we have to recalculate the return to equity e with the new debt-equity ratio. e = ρ + (ρ - d)*D E = 20% + (20% - 8%)*38.40% Joseph Tham 8
9. ProjN.Doc 61.60% = 20% + 7.48% = 27.48% (26) Using the revised debt and equity ratios and the return to equity, we can calculate the Weighted Average Cost of Capital (WACC). w = Percent Equity*Return on Equity + Percent Debt *Cost of Debt = %E*e + %D*d = 61.60%*27.48% + 38.40%*8% = 16.93% + 3.07% = 20.00% (27) As expected, the WACC in line 27 is equal to the WACC in line 18 and the value of ρ in line 1. Using the value of WACC, we can find the PV of the CFS-TIP in year 1 = 1,250 = 1,041.67 (28) 1 + 20% The results of the two cases are summarized in the following table. Case 1 is the original numerical example with zero NPV (See line 3) and Case 2 is the numerical example with positive NPV (See line 21) In practice, it is the rare case where the NPV is zero; however, as shown here, with a positive NPV, we simply have to adjust the debt and equity ratios by using the value shown in line 28. Table 1.6: Summary results for case 1 (NPV = 0) and case 2 (NPV > 0) Case1 Case1 Case2 Case2 No debt With debt No debt With debt %Debt 0% 40% 0% 38.40% %Equity 100% 60% 100% 61.60% D/E Ratio 0.00 0.667 0.00 0.623 Equity Return 20% 28% 25% 27.48% WACC ********** 20% ********** 20% Net Present Value 0.00 0.00 41.67 41.67 PV of Cashflow 1,000.00 1,000.00 1,041.67 1,041.67 In summary, the above numerical example demonstrates that the present value of the CFS-TIP at the WACC is equal to the present value of the CFS-EPV (Table 1.4) plus the present value of the loan repayment (Table 1.3). Joseph Tham 9
10. ProjN.Doc In this section, we had assumed that there were no taxes. In the next section, we will examine the complications that arise in the presence of taxes. With taxes, there are similar formulas for the calculation of the WACC. SECTION II: Impact of taxes In the previous example we did not have taxes. With taxes, some adjustments have to be made in the above formulas. Because of the tax benefit from the interest deduction, it can be shown that the value of the levered firm is equal to the value of the unlevered firm plus the present value of the tax shield. See any standard corporate finance textbook. In particular, see Copeland & Weston (pg 442, 1988) Value of levered firm = Value of unlevered firm + Present Value of Tax Shield (VL) = (VU) + PV(Tax Shield) (29) = (EL) + D (30) Compare line 30 with line 11. With debt financing, the value of the equity is increased by the present value of the tax shield. It is commonly assumed that the appropriate discount rate for the tax shield is d, the cost of debt. See Copeland & Weston (pg 442, 1988) and Brealey & Myers (pg 476, ) With taxes, there are two equivalent ways of expressing the CFS-TIP. In constructing the Total Investment Cashflow, we can either exclude or include the effect of the tax shield in the CFS-TIP. If we do not include the tax shield in the cashflow, then the Total Investment Cashflow would be identical to the all-equity cashflow CFS-AEPV. Thus, we will use the following abbreviations. CFS-AEPV = Cashflow Statement without the tax shield. CFS-TIP = Cashflow Statement with the tax shield The value of the WACC that is used for discounting the Total Investment Cashflow will depend on whether the tax shield is excluded or included. See Levy & Sarnat (pg 488, 1994) If the tax shield is excluded, then in the construction of the income statement, the interest deduction will be excluded in order to determine the tax liability as if there was no debt financing. If the tax shield is included, then in the construction of the income statement, the interest deduction will be included in order to determine the correct tax liability. Method 1: Excluding the tax shield and using CFS-AEPV Line 31 and line 32 show the equations for calculating w and e in the traditional approach. Since the cashflow statement does not include the tax shield, the value of the tax shield is taken into account in the WACC by multiplying the cost of debt d by the factor (1 - t). w = Percent Equity*Return on Equity + Percent Debt *Cost of Debt*(1 - tax rate) Joseph Tham 10
11. ProjN.Doc w = %E*e + %D*d*(1 - t) (31) e = ρ + (1 - t)*(ρ - d)*D (32) E Compare line 31 with line 18; and compare line 32 with line 19. The value of the equity E includes the present value of the tax shield and thus the debt and equity ratios will be different from the original values. Similarly, in the expression for the return to equity in line 32, there is the additional factor (1-t). Method 2: Including the tax shield and using CFS-TIP In this case the cashflow statement includes the value of the tax shield. Consequently, unlike in Method 1, there is no need to adjust the expressions for the calculation of the WACC and the return to equity e. The appropriate formulas are shown in line 33 and line 34. w = Percent Equity*Return on Equity + Percent Debt *Cost of Debt w = %E*e + %D*d (33) e = ρ + (1 - t) (ρ - d)*D (34) E Compare line 31 with line 33 and compare line 32 with line 34. Note that line 33 is the same as line 18. There is no difference between line 32 and line 34. Again, note that the value of the equity E in line 31 to line 34 includes the present value of the tax shield and thus the debt and equity ratios will be different from the original values. For further details, see line 42 and line 43 below. In terms of valuation, it makes no difference whether method 1 or method 2 is used. In the past, method 1 was preferred because it was computationally simpler. See Levy & Sarnat (pg 489, 1944). However, these days, computation time is probably not a relevant consideration. SECTION III: Cashflows in perpetuity In this section, we will apply the above formulas to a specific numerical example. We will continue to assume that the inflation rate is zero. The corporate tax rate is 40%. The framework in this section, with all the standard assumptions, is based on Copeland & Weston (pg 442, 1988). We will compare the cashflow statements with and without debt financing. Assume that a simple project generates annual revenues of 11,000 in perpetuity. The annual operating costs are 3,000. To maintain the constant annual revenues, the annual reinvestment will be equal to the annual depreciation which is assumed to be 2,000. With the reinvestment assumption, the annual Net Operating Joseph Tham 11
12. ProjN.Doc Income (NOI) after tax will be equal to the annual cashflow from the Equity Point of View. See Copeland & Weston (pg 441, 1988) The detailed income statement for the project is shown below. Table 3.1: Income Statement (in perpetuity) Yr>> 0 1 2 Revenues 15,000.00 ===>>>> Operating Cost 3,000.00 ===>>>> Depreciation 2,000.00 ===>>>> Gross Margin 10,000.00 ===>>>> Interest Deduction 00.00 ===>>>> Net Profit before taxes 10,000.00 ===>>>> Taxes 4,000.00 ===>>>> Net Profit after taxes 6,000.00 ===>>>> The Net Operating Income (NOI) before tax is 10,000; the value of the tax payments is 4,000 and the Net Operating Income (NOI) after tax is $6,000. It is assumed that the required return on equity with all-equity financing ρ is 6%. The detailed cashflow statement is shown below. The annual free cashflow is 6,000. As noted before, the annual cashflow in perpetuity is equal to the Net Operating Income (NOI) after tax in perpetuity. Table 3.2: Cashflow Statement, Total Investment Point of View/Equity Point of View Yr>> 0 1 2 Revenues 15,000.00 ===>>>> Total Inflows 15,000.00 ===>>>> ===>>>> Investment 2,000.00 ===>>>> Operating Cost 3,000.00 ===>>>> Total Outflows 5,000.00 ===>>>> Net Cashflow before tax 10,000.00 ===>>>> Taxes 4,000.00 ===>>>> Net Cashflow after tax 6,000.00 ===>>>> The value of the unlevered cashflow is shown below. (VUL) = NOI*(1 - t) = FCF = 10,000*(1 - 40%) ρ ρ 6% = 6,000.00 = 100,000.00 (35) 6% Thus, based on the annual cashflow of 6,000 in perpetuity, the value of the unlevered firm is 100,000. Joseph Tham 12 13. ProjN.Doc Debt Financing Next we consider the cashflow statement with debt financing. We will assume that the debt of the levered firm as a percent of the total value of the unlevered firm is 30%; thus, the value of the debt is 30,000. The interest rate on the debt d is 5% and the annual interest payment on the debt = D*d = 30,000*5% = 1,500.00. (36) The annual tax savings is equal to t*d*D = t*d*D = 40%*5%*30,000 = 600.00. (37) The present value of the tax shield in perpetuity = t*D = 40%*30,000 = 12,000.00. (38) The income statement, with the interest deduction, is shown below. Table 3.3: Income Statement Yr>> 0 1 2 Revenues 15,000.00 ===>>>> Operating Cost 3,000.00 ===>>>> Depreciation 2,000.00 ===>>>> Gross Margin 10,000.00 ===>>>> Interest Deduction 1,500.00 ===>>>> Net Profit before taxes 8,500.00 ===>>>> Taxes 3,400.00 ===>>>> Net Profit after taxes 5,100.00 ===>>>> The value of the tax payments is 3,400 and the net profit after taxes is 5,100. Previously, the tax payments was 4,000. The difference in the values of the two tax payments in Table 3.2 and Table 3.3 is equal to the tax savings from the deduction of the interest payments. The Total Investment Cashflows, without and with the tax shield, are shown below in Table 3.4 and Table 3.5 respectively. Table 3.4: Cashflow Statement, Total Investment Point of View, without tax shield Yr>> 0 1 2 Net Cashflow before tax 10,000.00 ===>>>> Taxes 4,000.00 ===>>>> Net Cashflow after tax 6,000.00 ===>>>> If we exclude the value of the tax shield in the cashflow, then the cashflow in year 1 in the CFS-TIPV will be 6,000. See Table 3.4. Again, recall that the cashflow will be Joseph Tham 13 14. ProjN.Doc identical to CFS-AEPV. In this case, the tax liability is 4,000 and the FCF available for distribution to the debt holders and the equity holders is 6,000. If we include the value of the tax shield in the cashflow, then the cashflow in year 1 in the CSF-TIPV will be 6,600 as shown below. Table 3.5: Cashflow Statement, Total Investment Point of View, with tax shield Yr>> 0 1 2 Net Cashflow before tax 10,000.00 ===>>>> Taxes 3,400.00 ===>>>> Net Cashflow after tax 6,600.00 ===>>>> The difference in the cashflows in Table 3.4 and Table 3.5 is the present value of the tax shield. Calculation of the value of the levered firm We know that the value of the levered firm is equal to the value of the unlevered firm plus the present value of the tax shield. (VL) = (VUL) + Present Value of tax shield = 100,000 + 12,000.0 = 112,000.0 (39) In this case, the value of the tax shield is equal to 12,000 and thus the value of the levered firm increases from 100,000 to 112,000 due to the tax shield. Equivalently, the value of the equity in the levered firm increases by the present value of the tax shield to 82,000. (EL) = (VL) - D = 112,000 - 30,000 = 82,000.0 (40) The amount of debt of the levered firm as a percent of the value of the unlevered firm was 30%; however, with the increase in the value of the levered firm from the tax shield, the amount of debt as a percent of the value of the levered firm decreases from 30% to 26.8%. Debt (as a percent of total value) = 30,000 = 26.78571% (42) 112,000 Similarly, the new debt equity ratio = 30,000 = 0.366 (43) 82,000 The annual FCF available for distribution to the debt holders and the equity holders is 6,600. The Cashflow Statement from the Equity Point of View is shown below. Table 3.6: Cashflow Statement, Equity Point of View Joseph Tham 14 15. ProjN.Doc Yr>> 0 1 2 NCF, TIP, after taxes 6,600.0 ===>>>> Interest Payment 1,500.0 ===>>>> NCF, Equity 5,100.00 ===>>>> Note that the FCF is equal to the net profit after taxes because we have assumed that the annual reinvestment is equal to the annual depreciation. See Table 3.3. Return to equity After paying the annual interest payments of 1,500, the annual FCF to the equity holder is 5,100. Based on an equity value of 82,000, the return to equity (with debt financing) is e = 5,100 = 6.21951% (43) 82,000 Alternatively, we could use the formulas which we had presented before. See line 32 and line 34. The rate of return to the equity owner e = ρ + (1 - t)*(ρ - d)*D E = 6% + (1 - 40%)*(6% - 5%)*30,000 = 6.21951% (44) 82,000 If there was no tax and the FCF remained the same, then the return to equity would be e = ρ + (ρ - d)*D E = 6% + (6% - 5%)*30,000 = 6.42857% (45) 70,000 See line 19. Compare the rate of return to equity in line 44 and line 45. With the tax shield, the return to equity is reduced from 6.429% to 6.22%. Alternatively, if there were no taxes, and assuming that the FCF remained the same, the return to the equity would be (6,000 - 1,500) = 6.429% (46) 70,000 which is the same as the answer in line 45. Calculation of the WACC Joseph Tham 15 16. ProjN.Doc We will calculate the WACC in two different ways and use them to estimate the value of the levered firm. As expected both values of the WACC will give the same answer. WACC with Method 1 w1 = Percent Debt*Cost of Debt*(1 - t) + Percent Equity*Cost of Equity = %D*d*(1 - t) + %E*e = 26.78571%*5%*(1 - 40%) + 73.21429%*6.21951% = 0.80357% + 4.55357% = 5.35714% (47) For the debt and equity ratios, see line 42. For the return to equity, see line 44. We can use the value of the WACC in line 46 to calculate the value of the levered firm. PV[Cashflow]TIP@ w1 = 6,000 = 112,000 (48) 5.35714% Compare line 48 with line 39. They are the same. WACC with Method 2 w2 = Percent Debt*Cost of Debt + Percent Equity*Cost of Equity = %D*d + %E*e = 26.78571%*5% + 73.21429%*6.21951% = 1.33929% + 4.55357% = 5.89286% (49) PV[Cashflow]TIP@ w2 = 6,600 = 112,000 (50) 5.89286% As expected, both the valuations of the levered firm with the different WACC values give the same result. Again, compare line 50 with line 39. Also, compare the present values in line 48 and line 50. If we exclude the tax shield in the FCF, then the correct WACC is 5.34% from line 47; alternatively, if we include the tax shield in the FCF, then the correct WACC is 5.89% from line 49. We can also verify the following identity for the value of the levered firm. (VL) = (EL) + D (51) Joseph Tham 16 17. ProjN.Doc PV[Cashflow]TIP@ w1 = PV[Cashflow]Equity@ e + PV[Cashflow]Loan@ d (52) PV[Cashflow]Equity@ e = 5,100 = 82,000.0 (53) 6.21951% PV[Cashflow]Loan@ d = 1,500 = 30,000.0 (54) 5% Line 52 is equal to the sum of line 53 and line 54. For comparative purposes, we can also calculate the WACC in the absence of taxes using the return to equity in line 45. WACC with no taxes w = Percent Debt*Cost of Debt + Percent Equity*Cost of Equity = %D*d + %E*e = 30%*5% + 70%*6.42857% = 1.50% + 4.50% = 6.00% (55) The results of the above analyses, with and without taxes, are summarized in the following table. Joseph Tham 17 18. ProjN.Doc Table 3.7: Summary of the example with and without tax No Tax With Tax FCF 6,000 6,000 Cost of Debt 5% 5% Amount of Debt 30,000 30,000 PV of tax shield 0 12,000 Debt (as % of VUL) 30% 30% Debt (as % of VL) 30% 26.79% Debt (as % of EL) 42.86% 36.59% Value of Equity 70,000 82,000 Return to Equity 6.429% 6.220% Value of firm 100,000 112,000 WACC (1) 6% 5.357% WACC (2) 6% 5.893% For practical project appraisal, we can summarize the above discussion as follows. If we exclude the tax shield in the cashflow statement, then to find the value of the levered firm, we discount the Total Investment Cashflow (CFS-AEPV) at 5.357%; if we include the tax shield in the cashflow statement, then to find the value of the levered firm, we discount the Total Investment Cashflow (CFS-TIP) at 5.893%. It does not matter which value of WACC is used; both WACCs used with the appropriate cashflow statements will give the correct value for the levered firm. See Table 3.4 and Table 3.5. SECTION IV: Single Period Cashflow In this section, we will apply the same formulas in line 31 through line 34 to a single-period project. We will continue to assume that the inflation rate is zero and the corporate tax rate is 40%. We will follow the pattern of the analysis in Section III and compare the cashflow statements with and without debt financing. Assume a simple project that generates revenues of 2,800 at the end of year 1. The initial investment required at the end of year 0 is 2,000. The annual operating cost is 500. The value of the depreciation is equal to the value of the initial investment. The detailed income statement is shown below. Joseph Tham 18 19. ProjN.Doc Table 4.1: Income Statement Yr>> 0 1 2 Revenues 2,800.00 Operating Cost 500.00 Depreciation 2,000.00 Gross Margin 300.00 Interest Deduction 00.00 Net Profit before taxes 300.00 Taxes 60.00 Net Profit after taxes 240.00 At the end of year 1, the Gross Margin is 300. For the moment, we are assuming that there is no debt financing and thus the interest deduction is zero. The tax liability is equal to the Gross Margin times the tax rate. = 300*20% = 60.00. (56) The Net Profit after taxes is$240. We assume that ρ, the required rate of return with all-equity financing, is 12%. The Cashflow Statement from the Equity Point of View is shown below. The free cashflow (FCF) in year 1 is equal to the net income plus depreciation. FCF = Depreciation + Net Profit after Taxes (57) Table 4.2: Cashflow Statement, Total Investment Point of View/Equity Point of View Yr>> 0 1 2 Revenues 2,800.00 Total Inflows 2,800.00 Investment 2,000.00 Op Cost 500.00 Total Outflows 2,000.00 500.00 Net Cashflow before tax -2,000.00 2,300.00 Taxes 60.00 Net Cashflow after tax -2,000.00 2,240.00 NPV @ ρ = 12.0 % 0.00 IRR 12.00% The rate of return on this project is 12% which is equal to the required return on equity of 12% for a project with all-equity financing. The present value of the FCF = 2,240 = 2,000.00 (58) 1 + 12% Joseph Tham 19
20. ProjN.Doc Thus, based on the FCF of 2,240 at the end of year 1, the value of the unlevered firm is 2,000. As shown below, the NPV of the project is zero. As explained above, for simplicity we have assumed a project with zero NPV. If the NPV of the project was positive, some minor adjustments would have to be made in the formulas. See the explanations for Table 1.5 in Section 1. The NPV of the FCF = -2,000 + 2,240 = 0.00 (59) 1 + 12% Next we consider the cashflow statement with debt financing. We will assume that the debt of the levered firm as a percent of the total value of the unlevered firm is 60%; thus, the value of the debt is 1,200. The interest rate on the debt d is 8% and at the end of year 1, the interest payment on the debt is = D*d = 1,200*8% = 96.00. (60) The loan schedule is shown below. Table 4.3: Loan Schedule Yr>> 0 1 2 Beg Balance 1,200.00 0 Interest 96.00 Payment 1,296.00 End balance 1,200.00 0.00 Financing 1,200.00 -1,296.00 NPV @ = 8.0 % 0.00 IRR 8.00% At the end of year 1, the total repayment for the loan, principal plus interest, is 1,296. The income statement, with the interest deduction, is shown below. Table 4.4: Income Statement Yr>> 0 1 2 Revenues 2,800.00 Operating Cost 500.00 Depreciation 2,000.00 Gross Margin 300.00 Interest Deduction 96.00 Net Profit before taxes 204.00 Taxes 40.80 Net Profit after taxes 163.20 The interest payment in year 1 = 8%*1,200 = 96.00. (61) Joseph Tham 20


text:
# Why so much hate against propensity score matching?

I’ve seen several variants of this meme on Twitter recently.

This is just one example, so nothing against @HallaMartin. But his tweet got me thinking. Apparently, in the year 2019 it’s not possible anymore to convince people in an econ seminar with a propensity score matching (or any other matching on observables, for that matter). But why is that?

Here’s what I think. The typical matching setup looks somewhat like this:

You’re interested in estimating the causal effect of X on Y. But in order to do so, you will need to adjust for the confounders W, otherwise you’ll end up with biased results. If you’re able to measure W, this adjustment can be done in a propensity score matching, which is actually an efficient way of dealing with a large set of covariates.

The problem though is to be sure that you’ve adjusted for all possible confounding factors. How can you be certain that there are no unobserved variables left that affect both X and Y? Because if the picture looks like the one below (where the unobserved confounders are depicted by the dashed bidirected arc), matching will only give you biased estimates of the causal effect you’re after.

Presumably, the Twitter meme is alluding to exactly this problem. And I agree that it’s hard to make the claim that you’ve accounted for all confounding influence factors in a matching. But how’s that with economists’ most preferred alternative—the instrumental variable (IV) estimator? Here the setup looks like this:

Now, unobserved confounders between X and Y are allowed, as long as you’re able to find an instruments Z that affects X, but which doesn’t affect Y directly (other than through X). In that case, creates exogenous variation in X that can be leveraged to estimate X‘s causal effect. (Because of the exogonous variation in X induced by Z, we also call this IV setup a surrogate experiment, by the way.)

Great, so we have found a way forward if we’re not 100% sure that we’ve accounted for all unobserved confounders. Instead of a propensity score matching, we can simply resort to an IV estimator.

But if you think about this a bit more, you’ll realize that we face a very similar situation here. The whole IV strategy breaks down if there are unobserved confounders between Z and Y (see again the dashed arc below). How can we be sure to rule out all influence factors that jointly affect the instrument and the outcome? It’s the same problem all over again.

So in that sense, matching and IV are not very different. In both cases we need to carefully justify our identifying assumptions based on the domain knowledge we have. Whether ruling out $Z \dashleftarrow\dashrightarrow Y$ is more plausible than $X \dashleftarrow\dashrightarrow Y$ depends on the specific context under study. But on theoretical grounds, there’s no difference in strength or quality between the two assumptions. So I don’t really get why—as a rule—economists shouldn’t trust a propensity score matching, but an IV approach is fine.

Now you might say that this is just Twitter babble. But my impression is that most economists nowadays would be indeed very suspicious towards “selection on observables”-types of identification strategies.* Even though there’s nothing inherently implausible about them.

In my view, the opaqueness of the potential outcome (PO) framework is partly to blame for this. Let me explain. In PO you’re starting point is to assume uncofoundedness of the treatment variable

$(Y^1, Y^0) \perp X | W$.

This assumption requires that the treatment X needs to be independent of the potential outcomes of Y, when controlling for a vector of covariates W (as in the first picture above). But what is this magic vector W that can make all your causal effect estimation dreams come true? Nobody will tell you.

And if the context you’re studying is a bit more complicated than in the graphs I’ve showed you—with several causally conected variables in a model—it’ becomes very complex to even properly think this through. So in the end, deciding whether unconfoundedness holds becomes more of guessing game.

My hunch is that after having seen too many failed attempts of dealing with this sort of complexity, people have developed a general mistrust against unconfoundedness and strong exogeneity type assumptions. But we still don’t want to give up on causal inference altogether. So we move over to the next best thing: IV, RDD, Diff-in-Diff, you name it.

It’s not that these methods have weaker requirements. They all rely on untestable assumptions about unobservables. But maybe they seem more credible because you’ve jumped through more hoops with them?

I don’t know. And I don’t want to get too much into kitchen sink psychology here. I just know that the PO framework makes it incredibly hard to justify crucial identification assumptions, because it’s so much of a black box. And I think there are better alternatives out there, based on the causal graphs I used in this post (see also here). Who knows, maybe by adopting them we might one day be able to appreciate a well carried out propensity score matching again.

* Interestingly though, this only seems to be the case for reduced-form analyses. Structural folks mostly get away with controlling for observables; presumably because structural models make causal assumptions much more explicit than the potential outcome framework.

## 3 thoughts on “Why so much hate against propensity score matching?”

1. Louis says:

I just stumbled across your blog which I deem extremely informative as well as particularly well written. As this is – especially within CI – not often the case: thank you for this!

Nevertheless, I do not share your (and Twitter’s) general pessimism with regards to the problems of confoundedness. To me, it seems pretty clear that a propensity score approach suffers more strongly from confoundedness than IV designs. Sure, the independence assumption of the IV with the outcome is still an assumption that required thorough argumentation – but the general choice of IV as exogeneous (sometimes crazy) variable does enhance validity! This is were researchs can become creative to find something that considerably influences X but is exogeneous to the whole system of X and Y.

I very much share the hope in CI to infuse statistics with causal meaning, in particular for AI. But over the hype of CI, we shouldn’t overcharge our own expecation with with. In the meanwhile, we should stick with what Konrad Adenauer said: “You don’t pour way dirty water unless you have clean one.”

Like

1. Hi Louis,

Thanks a lot, it’s great to hear such nice feedback. :)

I agree with you. There are many great IV applications out there which make a credible claim for identifying causal effects. And the push towards natural experiments has certainly stimulated a lot of creativity on the researchers’ side to find these kind of “crazy” variables you’re talking about, that can be considered to be “arguably exogenous”. However, in recent years I became more and more dissatisfied with the implicit hierarchy we seem to apply when judgng the quality of an empirical study. An RCT is the holy grail, RDD and IV are great, Diff-in-diff still aceptable, and don’t bother us with covariate adjustment. I think you have an idea of what I mean. The problem is that there no theoretical basis for such a hierarchy. All of these methods rely on untestable causal assumptions that need to be justified on a case-by-case basis. I generally agree that ICTs and IV methods tend to have a high degree of (internal) validity. But we shouldn’t jump to conclusions or think too one-dimensional. That’s what I wanted to express with this post.

Best,
Paul

Like


text:
# Proving Lucas Identity by Induction

I am trying to prove the following identity (I decided to use induction, but if that's not the best way feel free to mention that in the answers):

$$L^2_n = 5F^2_n + 4(-1)^n \space\space where\space\space n\ge1$$

$L(x)$ is the corresponding Lucas number for term x, and $F(x)$ is the corresponding Fibonacci number for term x (both series are indexed at 1; the Lucas series starts {1,3,4...} and the Fibonacci series starts {1,1,2...}). I proved the base cases for $L_1=1$ and $L_2=3$, but I am having trouble with the inductive step. By induction, we know the following to be true:

$$L^2_{n-1} = 5F^2_{n-1} + 4(-1)^{n-1}$$ $$L^2_{n-2} = 5F^2_{n-2} + 4(-1)^{n-2}$$

We also know the recurrence relation for Lucas numbers: $L_n = L_{n-1} + L_{n-2}$. If we square both sides of this relation, we get $L_n^2 = L_{n-1}^2 + L_{n-2}^2 + 2L_{n-1}L_{n-2}$. The first two of these values I can use the induction hypothesis to substitute in the expressions listed above, but I'm stuck on what to do with the $2L_{n-1}L_{n-2}$ term. The only thing I have thought of so far is to try to multiply the two formulas above and then try to square root the product at the end. I start by multiplying the equations:

$$L^2_{n-1}L^2_{n-2} = (5F^2_{n-1} + 4(-1)^{n-1})(5F^2_{n-2} + 4(-1)^{n-2})$$

However that just gives me this mess:

$$25F_{n-1}^2F_{n-2}^2 + 20F_{n-2}^2(-1)^{n-1} + 20F_{n-1}^2(-1)^{n-2} - 16$$

What can I do with that? Where do I go from here? Or did I make a wrong turn?

-

## 1 Answer

I'm not sure where that's going to lead you, but here's another approach. I assume you know the identity $L_n = F_{n+1} + F_{n-1}$ ? If not, that one's an easier induction. Then \begin{align*} L_n^2 &= F_{n+1}^2 + F_{n-1}^2 + 2F_{n+1}F_{n-1} \\ &= \left(F_n + F_{n-1}\right)^2 + F_{n-1}^2 +2F_{n+1}F_{n-1}\\ &= F_n^2 + F_{n-1}^2 + 2F_{n}F_{n-1} + F_{n-1}^2 + 2F_{n+1}F_{n-1}\\ &= F_n^2 + 2F_{n-1}\left(F_{n-1}+F_n\right) + 2F_{n+1}F_{n-1}\\ &= F_n^2 + 2F_{n-1}F_{n+1} + 2F_{n+1}F_{n-1}\\ &= F_n^2 + 4F_{n-1}F_{n+1}\\ &= 5F_n^2 + 4\left(-1\right)^n \end{align*}

The last step may look mysterious if you haven't seen Cassini's identity $$\left(-1\right)^n = F_{n+1}F_{n-1} - F_{n}^2$$

The cutest way to get Cassini's identity is that

$$\left(\begin{matrix} F_{n+1} & F_n \\ F_n & F_{n-1} \end{matrix}\right) = \left(\begin{matrix} 1 & 1 \\ 1 & 0 \end{matrix}\right)^n$$

and take determinants.

-