Professor solves 240 computer science exam problems in 4 hours [video]
youtube.com
youtube.com
At least in the fields where I work [compilers, formal verification], all of the above theory is common parlance. Everyone working on this stuff knows all of the above theory, since it forms the bedrock of a large part of what we do and how we think about the world. Knowing the complexity of the algorithms we use, the languages we parse, issues of decidability, etc. all crop up. That's because it's science, not engineering. GATE is meant as an entrance exam to pursue a graduate degree in computer science.
The fact that one does not need this during their day job is, dare I say it, irrelevant. This feels to me like people complaining that number theory is completely useless in the 19th century; Indeed it was... until it wasn't, and we needed cryptography.
This stuff is useful right now in a 'how to think about the world' kind of way. Knowing the power differences between automata, transducers, push down automata, and turing machines is critical in disparate applications involving formal verification. The difference in power of these different representations impacts what we can "do" with them. The knowledge of this hierarchy fundamentally shapes how I view the world.
My issue with this, and this is mostly my own personal opinion, is not whether or not this subject is important and that we need to defend it, but whether teaching it to students of that level is the 'right' thing.
Imagine a student that doesnt even know how to program yet, doesn't know any algorithms, or higher level paradigms, heck doesnt even know any computer architecture stuff yet, but has to go through this block of theory and get examined on it.. Is it the right move to motivate more people into this field?
Teaching it to which students? If someone enrolls in a computer science class, it's reasonable to teach them computer science. If instead they want a mechanical introduction to programming, CS probably isn't the right material.
Amusingly, when it did start getting routinely taught at the end of the 18th century there were complaints from businessmen to the school boards that the methods taught in school were producing students totally unprepared for business.
For more on this, see the essay "What is Mathematics For?" by Underwood Dudley from the May 2010 Notices of the AMS [1]. (A more accurate title, he notes in the first paragraph, would be "What is mathematics education for?").
He makes some interesting points about the usual justifications that elementary and high school math are useful in your career are not really accurate.
If you want people to develop programming languages, algorithms, models etc., not really. Computer Science is a subfield of math and trying to "lure" people into the field with flashy graphics and instant gratification will only frustrate them when it gets to the basics. In theory you can complete a Computer Science degree without ever programming a physical computer. To complete my Masters in CS I only had to take an introductionary course for Java, everything else programming related was optional.
Can you handle 1M concurrent in Go to replace a java load distributor? Sure! Crud apps..... oh brain hurts will never finish.
hands on experience with regular expressions manages to fail a lot of people with practical problems.
https://stackoverflow.com/questions/1732348/regex-match-open...
This completely sucks for practically inclined people who are forced to trudge through a theoretical degree that doesn't interest them, and where 90% of the material they will never use, just to prove that they're smart enough.
They then tend to blame academia for being out of touch, ivory tower, etc. But academia is not at fault here, they are teaching what they claim to teach: computer science. There are good pratically minded degrees which prepare you just fine for the average programming job, it's employers who constantly signal that they value CS degrees more.
I haven’t seen any corporate dev jobs that care about formal computer science during an interview. I only see that from BigTech and BigTech wannabes that think they need “smart people” (tm).
I strongly doubt that any university or educator is teaching so much theory of computation to any level of computer science student who will not be focused on theory of computation. Notice that the OP's video seems targeted towards incoming CS theory Masters/PhD students who will explicitly be working on CS theory and doing research.
If you are comfortable with the material, you see applications for it all over the place, and use it all the time. Sure, you don't have to ground your system in some kind of formal model (you can just code-til-it-works), but when you do I've found it always ends up as a far simpler and more resilient product.
It's kind of like people who complain that math is useless in school and you'll never need it. Sure, if you never really master it, you'll never be able to use it, so you'll make things kinda work in ways that don't strictly require it, and then conclude it's useless. Meanwhile, if you are familiar with it, your prospects are broader, you may have to use it, and you'll see how it was absolutely relevant and important to know...
Without knowledge of the theory it can be hard to come up with a descriptive name for some data structure/algorithm you created to solve your problem.
With some knowledge of the theory you can more easily put a name to what you have created, making it easier for other people to understand and giving them something to Google if they're unfamiliar.
> It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.” - Edsger Dijkstra
foreach (@lines) {
next if /^$/;
...There are two hard problems in computer science: naming things, cache invalidation, and off-by-one errors.
>There are two hard problems in computer science: naming
concurrency
>things, cache invalidation, and off-by-one errors.
I think history class was wasted on me in high school because I was a kid and didn't have much life experience. But years later with a better grasp on human nature I think I would have had a better grasp.
Another example is a foreign language class. I took it in middle school, in high school and later in college. I learned lots and lots of theory for many years. But only when I went to another country did I learn I hadn't learned.
I think theory needs to be combined with: experience and practice.
> I history class was wasted on me in high school because I was a kid and didn't have much life experience. But years later with a better grasp on human nature I think I would have had a better grasp.
would not be
> Schools are mostly state-run daycare programs, setup so that parents can work, not a genuine implementation of skill building.
This is due to the nature of the topic, not its pedagogy.
Perhaps it takes both. I've definitely seen people who have the one but not the other fail to appreciate the value of theory.
"What enables man to know anything at all about the world around him? … Nothing can be known without there being an appropriate “instrument” in the makeup of the knower. This is the Great Truth of “adaequatio” (adequateness), which defines knowledge as adaequatio rei et intellectus — the understanding of the knower must be adequate to the thing to be known.[...]
For every one of us only those facts and phenomena “exist” for which we posses adaequatio, and as we are not entitled to assume that we are necessarily adequate to everything, at all times, and in whatever condition we may find ourselves, so we are not entitled to insist that something inaccessible to us has no existence at all and is nothing but a phantom of other people’s imaginations.[...]
There is nothing more difficult than to become critically aware of the presuppositions of one’s thought. Everything can be seen directly except the eye through which we see. Every thought can be scrutinized directly except the thought by which we scrutinize. A special effort, an effort of self-awareness, is needed: that almost impossible feat of thought recoiling upon itself — almost impossible but not quite. In fact, that is the power that makes man human and also capable of transcending his humanity."
If a computer engineering degree does not have those, then it is a pretty bad one.
But their anger is usually directed at the wrong institution. The problem doesn't lie with academia teaching the wrong things, it lies with companies requiring CS degrees for simple programming jobs. They treat the theoretical computer science material as nothing more than a raw intelligence/perseverance filter.
But that's the stuff that sort of stood up to the test of time.
Also really helpful was symbolic logic, which actually was not a computer science course.
The most interesting computer science topics to me in school were the different computer languages -- but very few of them survived the test of time.
I suppose I spent two courses studying computational complexity, but reducing it to O(this) and O(that) does not quite do it justice.
Personally I have also found basic graph theory to be immensely useful for representing and reasoning about things.
I agree! The graph theory portion of my algorithms class (more than half of the class) was the third most useful thing I learned in my degree.
The vast majority of companies essentially code and design to the lowest common denominator so that their devs are fungible cogs.
Code doesn't have fixed timing requirements, most of the time.
1. They have to work through material that does not particularly interest them and is quite hard, but employers insist that they must master this stuff if they want a good position.
2. In their work environment, no one ever asks them to actually use theoretical CS concepts, and they don't spontaneously see applications themselves.
3. Therefore, they feel academia is out of touch and teaching irrelevant material that has no practical application. With my earlier comment I wanted to point out that I don't believe academia is to blame for their suffering.
And when I hire people, even though I hate doing adversarial whiteboard coding, I will probe to find out if people understand a bit of theory.
You can get a lot of work done without theoretical knowledge, (but the end result is often not as good, and it usually takes longer). Combine that with the fact that CS theory is hard, and you get a lot of people complaining about how theoretical CS is useless outside of academia.
It's basically an extension of "no one needs to know math beyond arithmetic in the real world".
I wonder how long-term those skills are, reminds me of companies teaching MCSE certification a few decades ago.
I can't speak for the longevity of the training, but he's doing fine.
For that matter, other than a terrible 101 class, I have no formal programming training and have been doing this professionally for over 20 years so far. But I'm a bit of a broken record when it comes to degrees-as-gatekeepers - the vast majority of programming jobs do not require a college diploma to competently perform. Very, very few people are writing blank-page Paxos implementations or researching "ai" - they're gluing APIs together and writing business logic. Moderate competence, the ability to do basic research and the patience to get past the WTF stage with a compiler are what you need, not a four year degree.
Without university, how is an employer to know you would've spent 4 years working on something reasonably challenging that took a moderate to large amount of effort over long periods of time? They can't discover any of this in an interview. The fact that high school is mandatory robs it of much of its signalling value.
This will very clearly result in the same loss of signaling value for higher education.
I disagree for some of the fundamental things.
Binary arithmetic is fundamental. The number of times I have seen people using addition for logical-or and being confounded by bugs astounds me. I don't expect you to be able to do stupid bit tricks. However you must know how to use and,or,xor,not for masking and you must understand what integer overflow/underflow is.
State machines are fundamental. I'll go so far as to say that if you don't know how to do state machines, you don't really know how to program. You simply have no framework for understanding things like protocols, sequencing, concurrency, etc.
Data structures are fundamental. Sure, I can boil it down to "75% of the time use a hash table; 25% of the time use a vector; .001% of the time use something else". But you won't know when you shouldn't use something.
These are things I see all the time in programmers who I would expect to know better. These also seem to be things that "programming" course often slack on--they're hard to teach and hard to learn. It requires work from both sides to communicate the concepts.
On the other hand, it seems that biology majors seem to "get by" [as far as I can tell] without needing to learn much math. Perhaps one can argue that it's better if they learnt more math. But we can't argue that the profession of being a doctor seems to work without them knowing too much math.
It's unclear to me, where in the extremely broad spectrum of jobs known as "programmer" [writing code for the space shuttle v/s bringing up an android app] where the need for mathematics ends. So I hesitate to make blanket statements about this.
What I will never hesitate to defend is the utility of these ideas of theoretical CS/mathematics for all computer scientists and scientist-adjacent folks.
Here's one example, who is in Kaggle 1% - https://twitter.com/bhutanisanyam1/status/120900088154848051....
For example, and I've noticed this pattern with some regularity: large and complex expression in a paper or some other document. Actual implementation: one or more for loops with an add or a multiply in the body of the loop with some initialization. I get it that mathematical notation is nice and compact and a quick way to communicate an idea but pseudo code would quite often be more clear.
The same for a lot of the other terminology used in the questions. How much of studying in order to pass an exam like this is simply to cram the definition for a large number of terms?
It may be worth considering that the answer may not be as significant as some might guess. GATE is an exam that tests if you're ready for graduate school. Part of being ready for a specialized field is being fluent in the vocabulary and parlance used in that field, as this enables rapid learning and smooths communication. That you can understand the ideas if they are restated and re-expressed in a form more familiar to you is not as helpful as it sounds if you cannot engage with your peers without laborious translations. Have you ever tried to discuss imperative programming with someone who only knows functional programming, or the converse?
Medical, legal, chemical, and other fields have evolved conventions of specialized vocabulary for the same reasons. They make it possible to have very detailed communications in dense, rapid ways.
Agian, you raise an excellent and wise point. There is definitely a great deal of learning vocabulary in something like this.
Least common denominator writing is very useful for a great many things. It is wonderful and ideally suited for items aimed at a popular audience. It just may not always be ideal for efficient and precise technical communication.
If you don’t want classes in general, go to course sites for universities and check the textbooks they use/reference.
they have professionalized.
With licensure, required training, standards, codes of ethics, legal recognition by government actors, etc.
Beyond that, I think you're selling an ideal here in these other professions that doesn't necessarily exist. There certainly is some vocabulary overlap but a huge problem in e.g. medicine is practicing doctors not being able to understand the science behind medicines and procedures that biased 3rd parties are recommending they offer to patients.
It's been my experience that when attempting to communicate, people use the vocabulary they expect will do the job efficiently for the task at hand. As you say, for many things this is absolutely pseudocode! But I've also been in situations where mathematics, or the many Greek letter transformations of Haskell, or something else was the vocabulary of choice. As the projects I've worked on have grown more complex and occasionally abstract, pseudocode has increasingly not been the go-to answer.
Again, you're completely right. It's a major issue that medical professionals often lack a real understanding of how a given pharmaceutical works. It's one that is in dire need of addressing!
I also think medical professionals have this shared assumption that they can talk about anatomy and physical processes with one another to communicate effectively and precisely, rather than "the bone next to the other bone next to the chompy thing". Especially when on a chart and the other professional isn't nearby to ask. That's shared vocabulary at work. I've certainly struggled to have architectural discussions with people with whom I shared little vocabulary. I'm sure the failing was entirely mine.
You're completely right. There's a lot here and pseudocode is incredibly powerful! I find it worth considering that there might be value to be gained in shared vocabulary beyond that one tool. Your mileage may of course vary.
Thank you kindly for the opportunity to better explain my points.
Hard things can look easy when typeset in monospace.
Isn't that only becuase you already know how to code, and don't know mathematical notation? I doubt looking at code for most non-programmers is that much easier than looking at mathematical symbols.
This bring back memories. I was preparing for GATE in 2006 after getting my bachelors. Actually started preparing from 2004. I was so bad at Automata Theory and discreet maths. I never got admitted to the prestigious IITs, but that preparation and learning was helpful later in my career when I got admitted to MS program in a US university.
I thought about doing a Turing machine in JavaScript but I never actually did it.
I wonder if people that retains all that information use it everyday, that's why they retain it. Thing I don't use in real life, like propositional logic, regular languages, automatas... I can barely remember. It's kinda sad thought, but I fill I cannot dedicate time and resources to keep this things fresh in my head.
I've found that to be the real value for a lot of the courses I took. Sure, I don't actively remember the content or use it daily, but occasionally something reminds me of something I learned. Then, it's a quick wiki page away from me understanding and using it. Contrast that with some devs I've worked with who haven't seen such things before and end up reinventing a less elegant solution to the problem.
I guess what I'm trying to say is that I would love to be that guy with a lot of information in the head, that can casually drop statics formulas and math concepts in a conversation, but that's not the case for my. At least for a lot of topics.
Watching the videos made me think about that. Starting a live video and answering 240 questions on several topics likes it's no big deal. Haha
If you write typical so called OOP code all the time, sure, you'll hit many instances of this or that pattern coming in handy. If you write FP and only occasionally strew in some OOP, well, many of the patterns fly out of the window, as you do not really need then any longer, because the building block is a function and you solve most of the stuff using closures and higher order functions. Also you usually do not mutate state, so that is another load of patterns out of the window.
Surely however, it is good to know the patterns approximately well, so that you can quickly understand the meaning of code, which makes use of them. If only all people used design patterns always in a correct way, instead of implementing them half-way correct and then using them in a weird way ... Never hurts too look up the details again, before introducing a pattern into the code!
I suppose you could argue that it's still a global variable, but I think it's more fundamental than that. You use a singleton when there should be exactly one of something. Why is there exactly one? "Because there's only one in the hardware" is a fundamentally different answer than "because it's a global variable".
Other programmers might reach for a global variable or a static variable for the same purpose in the same situation. The tradeoffs are pretty subtle.
However, as I said, the main reason that I have seen singletons used is programmers who heard lectures about how bad global variables are, heard about global variables, and didn't understand that every argument against a global variable also applies to a singleton.
For example you tout the advantages of enforced access rules. And indeed enforcement is good for avoiding bugs from accidental concurrent access. But said enforcement also means that bugs in releasing access at the proper time are harder to recover from. I've seen systems fail both ways, and it is unclear to me which one is better. (For example I've had more problems with Windows enforcing locking in its filesystem than with bugs in Unix's advisory only locking policy.)
Visitor is a hack. You need to traverse an opaque structure but you know the types of its nodes. A simple lambda in other languages, it’s needed in (older) C++ and Java because of the single dispatch method calls. Even so, it’s not common in languages that rely on runtime typing or algebraic data types.
When looking at the test I thought "man, I learned this in college, I should know that" but my brain was like "forget that, let's watch something funny on youtube"
I like to have a handful of problems that (1) have known solutions, (2) that I should be able to figure out in a reasonable time, (3) and that I should be able to make significant progress on entirely in my head. I then work on these when lying in bed trying to fall asleep, or when exercising, and similar times, and LeetCode is a good source for such problems.
The problem was given an array of integers find the smallest positive integer that is not in the array, and do it in O(N) time and O(1) space.
The O(1) space part was killing me. I just could not do it in less than O(N).
I decided to spend a while trying to prove that it could not be done in O(1) space. Presumably that would fail, but maybe if I could figure out why it failed that would also suggest how to do it in O(1) space. And thus I ended up thinking about Turing machines and other models of computation.
Except my attempts to prove it cannot be done on O(1) space seemed to succeed, so I was stumped. I spent a couple months on this stupid problem, before finally giving in and peeking at a solution.
It turns out that on LeetCode you can modify input arrays. I'm not a barbarian so I had assumed that inputs were supposed to be immutable.
I was fully expecting to see an implementation of a red-black tree, the use of software patterns, questions of why a certain solution was picked or what algorithm to pick and why, creating a circuit with logic gates that fulfill a certain function, etc.
This all seems more like a test of memory. "Do you remember exercise XXX on page YYY? Great, now pick the correct solution!". Him saying "I remember the solution to this from one of my earlier videos" even confirmed my bias against these things.
The main benefit of multiple-choice is that grading is instant. There is no ambiguity, no half points.
I completely agree that tests like this should not exist, but sadly they do. Even in Europe bachelor's courses seem to be slowly shifting towards this.
I'm not how sure how many students are taking these test, but given that it's in India, we're probably talking about tens to hundreds of thousand students.
He briefly explains his reasoning for each answer.
As a graduate student I found that to be true.
I had a professor in my undergraduate mechanical engineering classes who used a 4x rule for his exams -- he had to be able to do it in 15 minutes, we had an hour.
He has another channel where he posts things that mainly pertain to Sipser's Computation. You can find it here: https://www.youtube.com/c/RyanDougherty/videos
"Just throw more EC2 units at it" (which is fine and I agree with) - until a Node Js API handles 100 req/s in prod.
I love multiple choice. I aced Regents exams in high school by borrowing old study guides to memorize the missing half of the corpus. I recently had a great time taking the Triplebyte quiz inebriated. So I was gearing up to trying to keep up with this guy.
Question 1, bam! B. Needs infinite memory, regularity is a finiteness condition. I read it first because it was shortest, didn't even look at the other choices. Show me question 2! What? He's still talking?
I understand the pumping lemma, but here it's a technical way to solve the problem under general anesthesia. I guess math isn't alone at failing to teach what things really mean.
I never got to question 2, I got bored.
While B is the best choice among those provided, the question is poorly written.
To add on to what you said, many academics pursue knowledge for its own sake. In many cases, especially in theory, the value of new knowledge may not be known at the time of its discovery.
For example, the multi armed bandit problem was formalized by Herbert Robbins in the 50s. It was almost universal declared a negative result. Now, bandit algorithms are classified as some of the most commercially succesful applications of machine learning algorithms (ad placement, recommendation, experimental design), and the corresponding techniques used in the formal analysis of bandit algorithms are widely used in 'non-bandit' settings (see ICML's test of time award this year).
It always saddens me to see negative comments about academics & ignorance about 'the point' of academia.
edit: cause I don't remember much of this stuff.
You use it so much that it is down to intuition, or you never use it at all.
For example, my relationship to Orders of Complexity has been reduced to sorting options in my head, and picking the first one that is simple enough to keep working, and fast enough to satisfy the current and estimated future scope of the problem (which is also intuitive Capacity Planning).
If you make me explain the decision it might sound like I picked one at random.
Are you asking if I have written (shipped) a sort implementation? Only once, ages ago. No built-in stable sort, and none of the dozen articles I found had examples that scaled past 20 elements (which I found quite upsetting). I did my own port of mergesort that was almost 2 orders of magnitude faster. Constant complexity kills.
It's good to build a few on your own to become an informed consumer. Just don't 1) ship it or 2) use it as an interview question. If you want NIH people, you get them by asking NIH questions during the interview process.
Questions are categorized based on the subjects, I used this while preparing for GATE in 2015/2016.
The web site for IIT Delhi didn't say, that I could find.
I'm not sure, but I think GATE is a graduate school entrance exam.
A-bomb was about pulling some people away from academia, not building it by academia.
"Built by academia" result is something we can see with colliders.
TLDR: you never know what you'll need in the future. The only correct way is to research everything and we need a system for that.
Korea, to name the best example, takes education extremely seriously...and they have had severe difficulty turning that into innovation (outside the chaebols, there is basically no R&D occurring).
I would also look at the exam being tested here. This is India, a system that is notoriously reliant on rote memorisation and turning out employees who crumble under pressure and cannot operate without very specific instructions. Again, this is not a coincidence.
The source of innovation isn't knowledge by the coincidence of knowledge, creativity, and opportunity. Knowing something is quite different from being able to understand and use it. Stuff like the atom bomb are entrepreneurial triumphs by people who happened to be academics.
(The university I attended pioneered AI in the 60s, they had the DoD battering down their door...they refused every opportunity, and doubled down in the ivory tower. Result? No serious innovation since the 60s, and most PHd students going elsewhere to do "real work". This kind of thing just doesn't happen in the US but is the most common result outside of the US.)
And the right answer might be a combination of academics and real world application, instead of an either/or dichotomy.
My exams in college have not been about rote memorization. I've written quite a bit of code, and taken down quite a bit of notes for them. It totally depends on where someone studies in India. I do concede that the vast majority of college in India outside the "top 20" or so do seem to rely heavily on rote memorization.
- My notes taken for university: https://github.com/bollu/notes
- Code I wrote for university: https://github.com/bollu/IIIT-H-Code
> Stuff like the atom bomb are entrepreneurial triumphs by people who happened to be academics.
This seems like an odd position to defend. The mathematics that was necessary to even begin this line of investigation was worked out in academia by pure mathematicians and theoretical physicists. The "steelman" version of your argument I would phrase as thus:
> Academia does not have the incentive and funding structure to pull of projects such as the Manhattan project, and thus had to occur as a government project with unlimited funding.
I will gladly accept this. Unfortunately, it's not just academia that suffers from this. I don't think a lot of startups do useful research either. Most of the "original research" that I am aware of occurs at extremely well funded government labs, or lately the large tech companies that are pouring billions into AI.
I've followed a few courses on this, and they all focus on the mathematical background of it. Sure, it's neat to be able to prove some stuff about a toy language, but what does it really teach you?
"Regular expressions" in most programming languages are not regular. A lot of programming languages aren't even context-free. Heck, C++ templates are Turing complete! Does anyone care? Not really. It works, and unless you intentionally abuse it, it's not even that painful to use.
Meanwhile in academia, the parser is automatically generated from its EBNF definition using an algorithm proven to be optimal, but when you try to compile anything containing syntax errors it's either crash, infinite loop, or dump a completely gibberish error message.
I really get the feeling that a large part of academia is busy inventing their own problems to solve. From my experience, they are extremely bad at teaching how to solve real problems.
That does not mean that academia does not cover the topic, you just probably wouldn't get to it in an undergraduate course on (frankly trivial) compilers and parsers. If you read into research on things like semantic fuzzing, the slow death of batch compilers, and the various error propagation mechanisms out there from PL researchers you'd see those topics bring up lively academic discussions.
Academia lags in many ways behind practical designs because they aren't governed by deadlines and market realities, but they lead in many others precisely because ideas aren't constrained and they can focus on things that don't have immediate value to markets. It's not wise to discount an entire domain of expertise and culture of development just because it exists in a different context than professional engineering, particularly when we owe our entire industry to the efforts of academics in the first place.
Knowledge, especially in mathematics, is not a buffet; it's a pyramid. Wecan't hope for society to build programming languages like Haskell or Rust without teaching people the knowledge base that rests on regular languages and pushdown automata and so on.
That said, this is definitely one of the most esoteric topics in an undergrad CS curriculum and many universities are making it optional, for theory-inclined students only.
Or in the case of physics, wait half a lifetime to get a non-postdoc job.
Anyone, not in academia preferably, using this for practical applications? What ARE the practical applications?
EDIT, to add a bit more:
The theory behind regular languages allows you to design a regex system, to know its limitations and to be able to determine whether a language can be matched by a regex or it requires a more powerful model.
It can definitely be useful to think in terms of such theoretical constructs when approaching new problems, but it takes some getting used to before it can become productive. For this reason, I think the cost/benefit ratio of learning this for someone completely new to it can vary. It's probably not always worth it in all settings, but it certainly has practical merit.
Another example of this: theorem-proving is undecidable, yet automated thoerem provers are definitely capable of solving simple problems. The undecidability result means that any given automated theorem provers isn't capable of proving the truth/falsity of all statements. But this isn't some crazy limitation - this is true of humans as well. You can solve some math problems, but if someone showed up with an exabyte-long statement about how a problem-solver-who-is-identical-to-you-in-every-capability solves problems and asked you to prove it, obviously you wouldn't be able to do that.