Hacker News
Synthesis is harder than analysis
ssivark
|next
[-]
In the language of differential vs integral calculus, you can have perfectly well behaved and physical functions whose derivatives can completely miss the global behaviour of the function i.e. smooth but not analytic eg exp(-1/x) at x=0. Funnily enough, this is exactly the form of the action taken by quantum mechanics and an argument for how the classical limit irrecoverably ignores the physics of quantum systems.
pshirshov
|next
|previous
[-]
There is this thing though: https://en.wikipedia.org/wiki/Risch_algorithm , the best practical implementation was Axiom CAS
ajeet
|next
|previous
[-]
willturman
|next
|previous
[-]
torben-friis
|next
|previous
[-]
I'm not sure I can accept without further clarification equating that with synthesis. Normally in incident response, you start with a full system where in principle any root cause is possible and gradually reduce scope until finding the solution.
For me integration could be used for say taking three adhoc solutions and designing a general one that fits all, or merging two different services after a company merge. But anything debugging is very clearly analytic.
infinite_frodo
|next
|previous
[-]
galaxyLogic
|root
|parent
[-]
hliyan
|next
|previous
[-]
nayuki
|next
|previous
[-]
Taking this statement at face value, it means something in computer science: computing an answer (synthesis) is currently believed to be harder than checking an answer (analysis).
The simplest example to illustrate the claim is that factoring a number is harder than multiplying the two factors to check that it equals the original number, or even to decide whether the original is prime or composite (but without yielding the factors).
This also cuts to the heart of what NP means - it means that the answer to a yes/no problem about binary strings can be checked in polynomial time. It doesn't give a recipe for how to generate the answer, but it is implied that finding an answer can take up to exponential time and no more.
m_m_carvalho
|next
|previous
[-]
Understanding existing code or generating possible solutions is getting easier. The hard part is still deciding what to build, what not to build, and how independent ideas fit together into something coherent.
In my experience, AI reduced the cost of implementation far more than it reduced the cost of synthesis.
adverbly
|next
|previous
[-]
Good shout out. Same as with integral calc though, a bag of common tricks can get you pretty far. Would make for a good training regimen.
threethirtytwo
|next
|previous
[-]
Is that true? The derivative is a global answer. An equation that gives you rate of change globally given any local input.
I think there’s a better answer here.
teiferer
|next
|previous
[-]
dreamcompiler
|next
|previous
[-]
I get the author's point but this is not completely true; there exist functions that are not differentiable at certain places (e.g. ideal square waves) and others that are not differentiable anywhere (e.g. Weierstrass functions).
jonlong
|root
|parent
|next
[-]
In general, to even ask what it means to compute a derivative we need to specify some input language which describes functions in finite terms; we are necessarily in the world of constructions rather than (say) arbitrary set-theoretical maps between infinite sets. With this in mind, the claim that differentiation is always a straightforward computation is a strong one.
dcrazy
|next
|previous
[-]
It seems like malpractice to not even check this.
tikhonj
|root
|parent
|next
[-]
Who would be looking up the integral of one of the most common functions in applied math in a random philosophical article aimed mostly at SREs?
jdw64
|next
|previous
[-]
Analysis expertise is about knowing the limitations of specific languages, libraries, and frameworks, and this is easy to recognize and evaluate. But synthesis expertise, by its nature, is about 'combining systems within a specific company.' When you change jobs, it's hard to apply that combination to a completely different system.
For example, even if you know why a company's API design and structure were shaped the way they are, that doesn't necessarily mean you can use that knowledge directly at your next company. Maybe that's why.
taneq
|next
|previous
[-]
Might be differentiation and integration, might be dental plaque. ;)
apsurd
|next
|previous
[-]
Remember – Recall facts, definitions, formulas (memorization).
Understand – Explain ideas in your own words.
Apply – Use knowledge to solve problems or perform tasks.
Analyze – Break information into parts and identify relationships.
Evaluate – Judge, critique, or justify decisions.
Create – Synthesize ideas to produce something new.
nopinsight
|previous
[-]
EDIT: Fable 5 turned up some relevant references:
[1] Richardson, D. (1968). "Some Undecidable Problems Involving Elementary Functions of a Real Variable." Journal of Symbolic Logic, 33(4). — Differentiation is a simple recursive algorithm; deciding integrability in elementary terms is undecidable in general.
[2] Risch, R. H. (1969). "The Problem of Integration in Finite Terms." Transactions of the American Mathematical Society, 139. — The partial recovery: a (semi-)decision procedure for a restricted class.
[3] Guilford, J. P. (1967). The Nature of Human Intelligence. McGraw-Hill. — The divergent vs. convergent thinking distinction, the classic psychometric cousin of synthesis vs. analysis.
[4] Anderson, L. W., & Krathwohl, D. R. (Eds.) (2001). A Taxonomy for Learning, Teaching, and Assessing (revision of Bloom's taxonomy). Longman. — Moved "Create" (synthesis) to the top of the cognitive hierarchy, above "Analyze."
[5] Aaronson, S. (2011). "Why Philosophers Should Care About Computational Complexity." arXiv:1108.1791. — Argues complexity asymmetries (verification vs. generation, P vs. NP) bear directly on questions about cognition.