Solution Verification: Suggest a context-free grammar that creates this language. 
Suggest a context-free grammar that creates this language: 
$L=\{tct^Rcscw | t,s,w\in (a+b)^*, \space\space s \ne w^R\}$

My Solution Approach: 
We split the language to $S_1$ and $S_2$, where $S_1$ creates the $tct^R$ part and $S_2$ creates the $scw$ part, with a $c$ between them. 
$S\to S_1cS_2$ 
$S_1\to aS_1a|bS_1b|c$. (This creates $tct^R)$. 
$S_2 \to aS_2a|bS_2b|aXb|bXa$. (The idea is to jump to $X$ when we ruin the palindrome aka $s\ne w^R)$. 
$X\to aXa|bXb|aXb|bXa|c$. (basically can do anything as long as we finish with $c$ between). 
Although I'm confident in the solution, I feel like I missed something, I would really appreciate any feedback about my solution, and how do you check yourself after you've attempted questions of these type?
 A: Looks like a very good method to me, with one bug.  Your grammar assumes that $s$ and $w$ in your broken palindrome have to be the same length.  But they can be different, e.g. $abba\,c\,b$ is another broken palindrome.
The way I checked this was by recursively checking the pieces of the grammar:

*

*You separate the grammar into two parts, which you'll combine through union.


*The union is a simple rule $S\to S_1 S_2$.


*When merging two grammars, you have to be absolutely certain that symbols don't clobber each other. But $S_1$ and all of its rules use different symbols than $S_2$ and all of its rules. So there's no clobbering problem. The two grammars have been glued together properly.


*Now we can consider the grammars separately. $S_1$ looks like a straightforward grammar for producing palindromes.


*$S_2$ looks like a straightforward grammar for producing two broken palindromes. Indeed, it searches for a place where the two strings have nonmatching symbols. But if we check the definition of the language, it says simply that $s\neq w^R$, which can happen in many ways.
The assumption that you break a palindrome by mutating at least one of its symbols is not fully general. You can also break a palindrome by having two strings of different lengths.


*So the fix is to focus on creating a grammar for $\{ x\mathtt{c}y \mid x,y\in \{a,b\}^*,\; x\neq y^R\}$ in full generality.
Taking inspiration from your earlier approach of subdividing the problem, you might try creating a grammar just to recognize two strings of different lengths (separated by $\mathtt{c}$). If you combine that with your existing grammar for recognizing two same-length strings that form a defective palindrome, you'll have the complete grammar.
Incidentally, I'm impressed by your intuition that you missed something.  This was exactly the sort of thing I would completely overlook if I weren't checking very carefully.
